Mehtod Proplem

Status
Nicht offen für weitere Antworten.
D

Developer_X

Gast
Hi, kann mir irgendwer eine Methode schreiben, bei der so etwas ähnlich wie System.exit(0); passiert, aber das System anschließend neu gestartet wird?

Danke schon mal im Voraus(Developer_X!!)
 

André Uhres

Top Contributor
Eine Möglichkeit wäre über Runtime, etwa so:
Code:
String udir = System.getProperty("user.dir");
try {
    String cmd = "java -Xmx150m -jar \"" +udir+ "\\MeineAnwendung.jar\"";
    Runtime.getRuntime().exec(cmd);
    System.exit(0);
} catch (IOException ex) {
    ex.printStackTrace();
}
Du könntest aber auch einfach den Code wiederholen, der in deiner "main"-Methode steht.
Runtime hat jedoch den Vorteil, daß garantiert alle Ressourcen freigegeben werden.
 
D

Developer_X

Gast
Also das ist keine Jar sondern java datei, deswegen habe ichs mal bisschen umgeschrieben:
Code:
String udir = System.getProperty("user.dir"); 
	try { 
	    String cmd = "java -Xmx150m -java \"" +udir+ "\\Main_1.java\""; 
	    Runtime.getRuntime().exec(cmd); 
	    System.exit(0); 
	} catch (IOException ex) { 
	    ex.printStackTrace(); 
	}
Also jetzt aber habe ich das Problem, dass nur System.exit auftritt
PS:
Das steht nicht in der Main Klasse, sondern in der Collision Detection Klasse,
das heißt die sind alle wie ein Netztwerk verbunden, die klasse die alles Kontrolliert ist Main_1.java
das heißt alles soll geschlossen werden das gesamte System, und danach die Klasse Main_1.java
gestartet werden
kannst du mir da bitte weiterhelfen?
 

Murray

Top Contributor
Developer_X hat gesagt.:
Code:
String cmd = "java -Xmx150m -java \"" +udir+ "\\Main_1.java\"";
Lustig. Ist Dir in den letzten Tag nicht schon mehrfach erklärt worden, dass in Main_1.java nur Sourcecode steht, der zunächst mal mit javac.exe übersetzen werden muss, bevor er mit java.exe ausgeführt werden kann? Und dass java.exe eine Option "-java" kennt, wäre mir neu,
Alos: wenn überhaupt, dann so:
Code:
String cmd = "java -Xmx150m \"" +udir+ "\\Main_1\"";
 
D

Developer_X

Gast
geht auch nicht, ich denke ich werde einfach eine Message anzeigen lassen, und dann einfach das Spiel in einem neuen Frame öffnen
 

Murray

Top Contributor
Murray hat gesagt.:
Alos: wenn überhaupt, dann so:
Code:
String cmd = "java -Xmx150m \"" +udir+ "\\Main_1\"";

Das natürlich immer noch Quatsch, da man keine Pfad angeben darf; die Klasse muss im Classpath sein.

Also eher so:
Code:
String cmd = "java -Xmx150m Main_1";

EDIT: oder vielleicht noch
Code:
String cmd = "java -Xmx150m -cp \"" +udir+ " Main_1\"";
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben