# Befehl zum JAR starten



## unknown_member (5. Jan 2007)

Hi!
Ich möchte ein JAR per Knopfdruck starten und kenne auch den Befehl für exe-Dateien: exec.

Aber wie heißt der für JAR's?

thx, unknown_member


----------



## The_S (5. Jan 2007)

so wie du sie normal von der Konsole auch startest. exec ist allgemein. Schreib einfach


```
Runtime.getRuntime().exec("cmd /c java -jar deinJar.jar");
```


----------



## unknown_member (5. Jan 2007)

Danke!
Ich wusste gar nicht, dass das allgemein ist.  :applaus:  :applaus:  :applaus: 


Hobbit, du bist spitze!  :wink:


----------



## JimmyJ (10. Jul 2007)

Tach Leute, 
sitze gerade am gleichen problem:

Folgender Code macht leider nichts ausser die testausgaben...
die jar wird weder ausgeführt noch gibt es irgendein fehler!
(wenn ich die jar manuell ausführe gehts...)
bin für jeden hinweis dankbar...
mfg
JJ

	public static void main(String[] args) {
	    System.out.println("test2");
	    try
	    {
		System.out.println("test3");
	        Runtime.getRuntime().exec("cmd /c java -jar test.jar");
		System.out.println("test4");
	    }
	    catch (IOException IOe)
	    {
	        IOe.printStackTrace();
	    } 
	    System.out.println("test5");

	}


----------



## mikachu (10. Jul 2007)

nimm mal den absoluten pfad für das jar-archive

```
Runtime.getRuntime().exec("cmd /c java -jar c:/foo/bar/test.jar");
```


----------



## JimmyJ (10. Jul 2007)

geht leider auch nicht...
echt nervig, wenn man noch nichtmal ne fehelrmelödung bekommt:-(

danke aber für die schnelle hilfe!


----------



## mikachu (10. Jul 2007)

hast du den exec-string schonmal in ner console ausprobiert?
also den komplette string-content


----------



## Guest (10. Jul 2007)

jup..
genau so funktioniert er in der konsole!

ich mache in der test.jar nur eine kleine ausgabe...könnte es sein, dass ich diese einfach nicht sehe, wenn ich das aufrufende prog ausführe?
(ich führe diese in eclipse aus, dort sehe ichd ann auch die testausgaben...aber die ausgabe aus der test.jar nicht)


----------



## Guest (10. Jul 2007)

mhh...
hab gerade festgestellt, dass er auch bei einem EXTRA falschem pfad keinen fehler ausgibt...????


----------



## mikachu (10. Jul 2007)

```
Runtime.getRuntime().exec("cmd /c java -jar c:/foo/bar/test.jar > error.log");
```

wenn der mit der ausgabeumleitung klar kommt, dann kannste die ja machen, um zu sehen, was da vor sich geht


----------



## The_S (10. Jul 2007)

ein "start" nach "cmd /c " oder evtl. auch ein "javaw" anstelle von "java" sollte das Problem lösen.


----------



## thE_29 (10. Jul 2007)

Ich würde mal

cmd /c "java -jar datei.jar"


Denn, alles was mit Leerzeichen getrennt ist, ist ein Parameter!!!

Dh, er würde das im schlimmsten Fall als mehrere Parameter interpretieren! Desweiteren wenn ein Leerzeichen im Pfad ist, geht das sowieso nicht!!

Oder cmd /c java -jar "pfad_mit_leerzeichen_zur_datei.jar"


----------



## Guest (10. Jul 2007)

cool....
mit "start" gehts...
vielen dank!!!!!


----------



## thE_29 (10. Jul 2007)

Es geht sicher auch ohne ^^

Du machst ne neue Konsole mit cmd /c auf und danach mit start noch eine?!? Sinnhaftigkeit => gar keine!


----------



## The_S (11. Jul 2007)

Mit cmd /c greifst du imho auf die Konsole zu, also in diesem Fall auf die selbe Instanz, die bereits von dem ursprünglichen Java-Programm verwendet wird. Damit wird er nicht klarkommen, deshalb neue Konsole mit start.


----------



## thE_29 (11. Jul 2007)

Schon mal die Hilfe gelesen?

/C      Führt den Befehl in der Zeichenfolge aus und endet dann
/K      Führt den Befehl in der Zeichenfolge aus und endet dann nicht.

So, probier mal

cmd /c dir
Wenn du hier exit eingibst, macht er dir die Shell zu, da die extra Shell für dir automatisch zugemacht wurde ^^

Machst du cmd /k dir kannst du nachher exit eingeben, da diese extra Shell nicht zugemacht wurde!


----------



## The_S (11. Jul 2007)

Nö, Hilfe habe ich noch nicht gelesen. Da ich dieses Verhalten aber auch schon einige male mitbekommen habe, kann ich mir auch keine andere Erklärung für diese Eigenschaft denken.


----------



## sunfy (6. Sep 2007)

Wie lautet der Befehl für das selbe Problem unter Unix?

cmd /C    geht da ja nicht.

Gruß Sunfy


----------

