# Neuen Process starten,



## Empire Phoenix (12. Feb 2009)

Ich habe mir für mein eines Programm ein Autoupdate gebastelt das per webstart läuft.
Dies funktioniert soweit, die frage ist jetzt, wie bringe ich den dazu hinterher das ganze als eigenen Process zu starten?


```
List<String> command = new ArrayList<String>();
		    command.add("java Core.Client");
		    //alternativ:
		    //command.add("start.bat");
		    command.add("/A");
	
		    ProcessBuilder builder = new ProcessBuilder(command);
		    builder.directory(new File(AutoDownloader.getInstallationfolder() + "\\data\\"));

		    final Process process = builder.start();
		    InputStream is = process.getInputStream();
		    InputStreamReader isr = new InputStreamReader(is);
		    BufferedReader br = new BufferedReader(isr);
		    String line;
			while ((line = br.readLine()) != null) {
				System.out.println(line);
			}
			System.out.println("Program terminated!");
```

Habe ich mir aus verscheidenen Quellen zusammenkopiert, leide erfüllt es jedoch nicht seinen zweck 
CreateProcess error=2, Das System kann die angegebene Datei nicht finden):

Die Dateien existieren garantiert an der angegebenen Stelle.

Zudem bleibt dann noch das Problem, das wenn ich zb einfach mal die cmd statdessen ausführe, 
diese zwar auch startet, diese jedoch komplett im hintergrund tut, ich möchte die jedoch so starten als ob ich ausführen cmd bzw halt meine bat ausführe


----------



## Wildcard (12. Feb 2009)

Webstart macht doch automatisch Update. Warum baust du etwas eigenes?


----------



## Empire Phoenix (12. Feb 2009)

Weil um inkrementell updates zu haben, brach ich nen Tomcat/ähnlich, was icha ber nicht benutzen möchte. Ausserdem hat Webstart das Problem das einige Funktionen anders laufen als beim normalen start.


----------



## Wildcard (12. Feb 2009)

Inkrementelle Updates sind auch mit Webstart möglich (Inkrementell im Sinne von einzelnen jars).
Aber um das richtig zu verstehen: Deine Anwendung ist kein Webstart, sondern der Updater der die Anwendung aktualisiert?  ???:L


----------



## Empire Phoenix (12. Feb 2009)

jup, es geht eigentlich lediglich darum, dass ich eine vorher bekannte datei aus einem absolutem pfad der ebenfalls bekannt ist gestartet bekomme


----------



## Wildcard (13. Feb 2009)

Empire Phoenix hat gesagt.:
			
		

> CreateProcess error=2, Das System kann die angegebene Datei nicht finden):
> 
> Die Dateien existieren garantiert an der angegebenen Stelle.


Lass dir den Pfad ausgeben bevor du ihn verwendest, dann wirst du sehen das er falsch ist. Diese Meldung kommt von einem Windows System, also wird der Aufruf ans Dateisystem weitergeleitet und dort wird nichts gefunden.


----------



## Empire Phoenix (13. Feb 2009)

Hm habe es jetzt irgetwie zum laufen bekommen, erkenne jedoch nciht wirklich wo der unterschied zum obigen liegt. (zumindest was den pfad angeht)


```
try{
	        File scripFile = new File(AutoDownloader.getInstallationfolder()+ "/data/start.bat");
	        ProcessBuilder processBuilder = new ProcessBuilder(scripFile.getAbsolutePath());
	        processBuilder.directory(scripFile.getParentFile());
	        processBuilder.start();
		} 
		catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
```


----------



## Wildcard (13. Feb 2009)

Ich auch nicht, da es im oberen Code so etwas wie 'scriptFile' gar nicht gibt.


----------

