[JAVA] Jar file vanuit de code runnen

Pagina: 1
Acties:

  • fuge
  • Registratie: November 2004
  • Laatst online: 11-06-2024
Ik ben al lang op zoek naar een eenvoudige manier om een .jar vanuit java code te kunnen runnen, en wanneer ik zover ben zou'k ook moeten weten wanneer het geeindigd is (kan ook door een waarde te returnen ofzo).

Maar zelf het runnen op een deftige manier lukt me niet.

*** Human knowledge belongs to the world ***


  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 20-02 15:15

mOrPhie

❤️❤️❤️❤️🤍

Wil je een jar-file als plugin runnen? Of gewoon echt executen?

In het 2e geval is dit wat je zoekt volgens mij:

http://www.javaworld.com/...2-2000/jw-1229-traps.html

Je kan daar een proces starten, dus ook een "java -classpath [...]" commando. Vervolgens kun je de output ophalen of het proces monitoren. :)

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


  • Mac_Cain13
  • Registratie: Juni 2003
  • Laatst online: 27-01 22:51
Als je niet gewoon een commando af kunt vuren vanuit Java waarmee je de jar start en vanzelf verder gaat als dat Java programma klaar is. (Zijn daar geen methoden voor?)
Zou ik in de richting gaan zoeken van de jar file unzippen, het MANIFEST lezen en dan de juiste main starten oid. Dan weet je ook vanzelf wanneer het afgelopen is, want op dat moment zal de main returnen. Alleen of dat nou zo'n deftige manier is... Het is ook maar even een hersenspinsel van mij. :P

Maar wat heb je al geprobeerd? Kun je wel een ander programma runnen, een executable binary oid, of werkt dat ook niet? En wat voor ideeen had je zelf al?

  • fuge
  • Registratie: November 2004
  • Laatst online: 11-06-2024
mOrPhie schreef op woensdag 19 april 2006 @ 00:14:
Wil je een jar-file als plugin runnen? Of gewoon echt executen?

In het 2e geval is dit wat je zoekt volgens mij:

http://www.javaworld.com/...2-2000/jw-1229-traps.html

Je kan daar een proces starten, dus ook een "java -classpath [...]" commando. Vervolgens kun je de output ophalen of het proces monitoren. :)
gewoon executen

*** Human knowledge belongs to the world ***


  • fuge
  • Registratie: November 2004
  • Laatst online: 11-06-2024
Mac_Cain13 schreef op woensdag 19 april 2006 @ 00:15:
Als je niet gewoon een commando af kunt vuren vanuit Java waarmee je de jar start en vanzelf verder gaat als dat Java programma klaar is. (Zijn daar geen methoden voor?)
Zou ik in de richting gaan zoeken van de jar file unzippen, het MANIFEST lezen en dan de juiste main starten oid. Dan weet je ook vanzelf wanneer het afgelopen is, want op dat moment zal de main returnen. Alleen of dat nou zo'n deftige manier is... Het is ook maar even een hersenspinsel van mij. :P

Maar wat heb je al geprobeerd? Kun je wel een ander programma runnen, een executable binary oid, of werkt dat ook niet? En wat voor ideeen had je zelf al?
code:
1
 Runtime.getRuntime().exec("java -jar challenge.jar");

Zo kan je het gewoon simpelweg runnen, ik heb ook al geprobeerd via libary's hem te importeren, en nog enkele dingen die totaal niet werkten ...

*** Human knowledge belongs to the world ***


  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 20-02 15:15

mOrPhie

❤️❤️❤️❤️🤍

Als bovenstaande samplecode niet werkte, dan moet je debuggen en zoeken waar de fout ligt, want dit zou gewoon moeten werken. Ik heb een dergelijk iets 'ns moeten doen en toen werkte het prima. Dat was echter met een classpath en niet met een jar.

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


  • fuge
  • Registratie: November 2004
  • Laatst online: 11-06-2024
kheb nu wel x wat me wel aanstaat moet het wel nog wa beter uitwerken
code:
1
2
3
4
5
6
7
8
9
10
11
        try
        {   
             Runtime rt = Runtime.getRuntime();
             Process proc = rt.exec("java -jar prog.jar");
             int exitVal = proc.waitFor();
             System.out.println("Process exitValue: " + exitVal);
        } 
        catch (Throwable t)
        {
            t.printStackTrace();
        }


dankzij jouw url ;)

[ Voor 12% gewijzigd door fuge op 19-04-2006 01:01 ]

*** Human knowledge belongs to the world ***


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 22-02 17:25

Robtimus

me Robtimus no like you

Mac_Cain13 schreef op woensdag 19 april 2006 @ 00:15:
Als je niet gewoon een commando af kunt vuren vanuit Java waarmee je de jar start en vanzelf verder gaat als dat Java programma klaar is. (Zijn daar geen methoden voor?)
Zou ik in de richting gaan zoeken van de jar file unzippen, het MANIFEST lezen en dan de juiste main starten oid. Dan weet je ook vanzelf wanneer het afgelopen is, want op dat moment zal de main returnen. Alleen of dat nou zo'n deftige manier is... Het is ook maar even een hersenspinsel van mij. :P
Daar zit 1 heel groot nadeel aan: wat als het programma uit die JAR nou eens System.exit() aanroept? Dan sluit de hele applicatie af - de jouwe dus ook.

Via Runtime.exec() voorkom je dit probleem, en zo krijg je dus de code die de TS zelf al heeft gepost.

More than meets the eye
There is no I in TEAM... but there is ME
system specs

Pagina: 1