31. januar 2005 - 09:59Der er
7 kommentarer og 1 løsning
"Open-end" Java-session
Jeg ønsker at lave en slags Java-applikation, hvor man f.eks. i et tekst-vindue har mulighed for at få kørt et Java-program. For så vidt tekst-vinduet indeholder et fuldt Java-program er det blot at afvikle dette, men ideen er, at programmet skal kunne afvikles "step-wise", dvs. man skal kunne afvikle f.eks. en linie ad gangen osv.
Jeg har brug for lidt inspiration til, hvordan man overordnet kunne designe en sådan applikation, og jeg tænker her ikke på det grafiske layout men det konstruktionsmæssige i at lave en slags "open-end" Java-session.
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
->snoop_one: Det er nok en udmærket ide at tænke i f.eks. JDI. Mit behov er for så vidt blot at kunne starte/stoppe en session, så det bør være muligt.
Videre kunne jeg tænke mig at lave en form for "step-vis kompilering" og ikke bare "step-vis eksekvering", således at kompilering foretages i takt med at programmet afvikles - altså en slags inter-aktiv "open-end" Java-session, hvor brugeren løbende taster kode ind, som derefter kompileres og eksekveres.
Har du nogen kommentar til, om dette vil kunne lade sig gøre?
Om det, med step-vis kompilering vil kunne lade sig gøre ved jeg faktisk ikke - men tror det næsten ikke. Det der kommer nærmest det du efterspørger har jeg set i eclipses scrapbook, hvor man kan skrive kodestumper og få eclipse til at eksekvere det.
Jeg har også svært ved at forstå hvorfor step-vis kompilering og eksekvering giver nogen mening - når vi taler om JAVA?
f.eks hvis du har:
public class MyTest{ ... MyObject obj = new MyObject(); ... private class MyObject{ ... } }
Ovenstående er jo et fuldstændigt lovligt Java language konstruktion.
I dit tilfælde (med stepvis kompilering) vil dit program kompilere linien ... obj = new MyObject(); men den vil nok komme med en kompilerings fejl, da den ikke ved om MyObject klassen findes. Så det er først når hele klassen er blevet stepvise kompileret at du så kan give brugeren en fejlmeddelelse om, at der er kompileringsfejl eller at klassen er fri for kompileringsfejl.
->snoop_one: Det er helt korrekt. Det step-vise kommer i stand derved, at applikationen jo kun ved, hvad brugeren har tastet ind, indtil et vist tidspunkt, når kompilering skal ske. I ovennævnte eksempel vil det være sådan, at brugeren skal taste så meget kode ind, at koden lovligt kan kompilere indtil det tidspunkt, brugeren beder om det.
Fordelen ved denne fremgangsmåde, som jeg forestiller mig det, er, at den dynamik, som man at bygger ind med reflections - og som er temmelig tung - ikke altid er nødvendig, idet de dynamiske valg i mange tilfælde lægges fast, efterhånden som programmet afvikles.
I første omgang er jeg interesseret i at kunne starte en Java-session op fra en anden Java-session. Har du nogen kommentar til, hvordan dette gøres?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.