# jar Datei mit Java Programm öffnen



## schmidi000 (1. Mrz 2012)

Hey Leute, ich bin gerade dabei ein Programm zu schreiben mit dem ich Programme ausführen und schließen kann, mit .exe Dateien funktioniert alles, aber wenn ich eine .jar Datei ausführen will dann funktioniert das nicht, also ich mache das ganze so: 

```
try {
				builder = new ProcessBuilder(getPathToOpen);
				p1 = builder.start();
			} catch (IOException e) {e.printStackTrace();}
			catch (ArrayIndexOutOfBoundsException aioobe) {aioobe.printStackTrace();}
```

in die Variable getPathToOpen wird der Pfad gespeichert, welcher von einem JFileChooser kommt.

Mit einem Klick auf einen Button wird das Programm ausgeführt (zumindest die .exe Dateien)

Mit einem Klick auf einen anderen Button wird das Programm wieder beendet.

Neuer Stand: .jar Dateien kann ich nun so ausführen: 

```
builder = new ProcessBuilder("cmd","/c", getPathToOpen);
				p1 = builder.start();
```
aber wie kann ich sie jetzt wieder beenden (per buttonklick im Java Programm)?

Mfg schmidi000


----------



## irgendjemand (1. Mrz 2012)

wie wäre es mal sich mit java soweit zu befassen um zu wissen das JAR daten intern auch nur mit javaw.exe verknüpft sind ...

ergo müsste dein aufruf sowas hier enthalten

X:/PFAD/ZUM/JRE/bin/javaw.exe -jar X:/PFAD/ZUM/JAR/file.jar


----------



## schmidi000 (1. Mrz 2012)

1. Weiß ich das (daran hab ich aber nicht gedacht)
2. Geht es nicht mehr ums ausführen der .jar Datei

Es geht darum dass ich diese .jar Datei per Buttonklick wieder beenden will.


----------



## irgendjemand (1. Mrz 2012)

ähm .. wie wäre es mal in die API-DOC zu gucken ?

ProcessBuilder.start() liefert ein objekt der klasse Process ...
dann gibt es die methode Process.destroy() ... was ungefähr einem KILL gleich kommt ...

erlich ... google , sufu , doc ... und auch mal das hirn anschalten

bei deinem umweg über CMD entsteht das problem das CMD nicht dauerhaft läuft sondern nur JAVAW.EXE callt ... was aber nur ein launcher für JAVA.EXE ist in dem halt die console unterdrückt wird ...
darum returnt JAVAW.EXE und damit auch CMD.EXE ... ergo : dein process ist für java durch ...

um das was du machen willst umzusetzen musst du JAVAW.EXE schon dierekt starten um die kontrolle zu haben ...


----------

