/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Kald af java fra java
Fra : Torben Lund


Dato : 29-05-01 07:50

Hej,

Kan man kalde et andet javaprogram fra et kørende? Det jeg har brug for
er et kald med 3 parametre: ”java program parm1 parm2 parm3”. Jeg har
forsøgt at importere hele pakken og lave et nyt objekt der kaldes med
parametrene, men javac giver fejlmeddelsen ”cannot resolve symbol”; path
skulle være OK og alle classes er public.

Det er sikkert en detalje jeg igen har overset.....

Er der noget der har en ide?


Venlig hilsen,

Torben Lund

 
 
Lars Dam (29-05-2001)
Kommentar
Fra : Lars Dam


Dato : 29-05-01 10:05

On Tue, 29 May 2001 06:50:29 GMT, Torben Lund <torben@pet.auh.dk>
wrote:

>Hej,
>
>Kan man kalde et andet javaprogram fra et kørende? Det jeg har brug for
>er et kald med 3 parametre: ”java program parm1 parm2 parm3”. Jeg har
>forsøgt at importere hele pakken og lave et nyt objekt der kaldes med
>parametrene, men javac giver fejlmeddelsen ”cannot resolve symbol”; path
>skulle være OK og alle classes er public.
>
>Det er sikkert en detalje jeg igen har overset.....

Hvorfor bare ikke kalde main() i dit andet program? I.e.

String args[] = {"parm1","parm2","parm3"};
OtherClass.main( args );

Det kræver selvfølgeligt at path'en er sat korrekt op.
Dette indebærer også at det andet program kører i samme JVM.

Alternativt kan du kalde:

java.lang.Runtime.exec( "Java OtherClass parm1 parm2 parm3" );
Dette indebærer at der bliver lavet en ny JVM.

>
>Venlig hilsen,
>
>Torben Lund

vh. ld


--
"Time is the fire in which we burn"

Niels Ull Harremoës (29-05-2001)
Kommentar
Fra : Niels Ull Harremoës


Dato : 29-05-01 21:53


"Lars Dam" <lars_simple_spam_protection_dam@post2.tele.dk> skrev i en
meddelelse news:o9p6htc0uet1h87tqofpssibksavvh8oi2@4ax.com...
> On Tue, 29 May 2001 06:50:29 GMT, Torben Lund <torben@pet.auh.dk>
> wrote:
>
> >Hej,
> >
> >Kan man kalde et andet javaprogram fra et kørende? Det jeg har brug for
> >er et kald med 3 parametre: "java program parm1 parm2 parm3". Jeg har
> >forsøgt at importere hele pakken og lave et nyt objekt der kaldes med
> >parametrene, men javac giver fejlmeddelsen "cannot resolve symbol"; path
> >skulle være OK og alle classes er public.
> >
> >Det er sikkert en detalje jeg igen har overset.....
>
> Hvorfor bare ikke kalde main() i dit andet program? I.e.
>
> String args[] = {"parm1","parm2","parm3"};
> OtherClass.main( args );
>
> Det kræver selvfølgeligt at path'en er sat korrekt op.
> Dette indebærer også at det andet program kører i samme JVM.
>
> Alternativt kan du kalde:
>
> java.lang.Runtime.exec( "Java OtherClass parm1 parm2 parm3" );
> Dette indebærer at der bliver lavet en ny JVM.
En enkelt ulempe kan være, at det ikke virker under Microsoft's VM, idet
java-fortolkeren her hedder jview - der skulle kommandoen være
java.lang.Runtime.exec( "Jview OtherClass parm1 parm2 parm3" )

Du er også langt mere sårbar for ondsindede data - hvis nu fx parm3 er et
filnavn som indtastes på en website, kunne jeg måske indtaste brugernavnet
dummyFile.txt ; rm -rf *
Hvis det køres på unix bliver der nu kørt antagelig to kommandoer - dels det
egentlige program, dels en rask lille oprydning
Det samme kan selvfølgelgi gøres på NT - og langt mere subtile angreb er
også mulige.

Hver gang du laver en Runtime.exec skal du være MEGET sikker på hvad der kan
blive sendt - ondsindede data er et af de almindeligste sikkerhedshuller!

>
> >
> >Venlig hilsen,
> >
> >Torben Lund
>
> vh. ld
>
>
> --
> "Time is the fire in which we burn"



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste