Mein Problem ist, dass ich ein Glas in einem Java-Programm nicht öffnen kann. Die .jar, die ich möchte es funktioniert gut als gut geöffnet, hat eine OpenCV Bibliothek drin. Wenn ich die .jar Klicken verdoppeln, dann fein es funktioniert. Wenn ich es in der Mac OS X-Terminal Typ.Runtime.getRuntime(). Exec ("java -jar xxx.jar); Nicht funktionierend | Mac OS X
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() instanceof JButton){
JButton button = (JButton) e.getSource();
if(button.getText().equals("Aktivieren")){
System.out.println("Yaay");
String str;
if(Main.os.contains("Mac")){
str = "java -jar "+System.getProperty("user.home") + "/Library/Application\\ Support/MW"+"/System/Core.jar";
System.out.println(str);
} else {
str = "java -jar "+Main.directory+"/MW/System/Core.jar";
}
System.out.println(str);
try {
Runtime.getRuntime().exec(str);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
So ist der Ausgang des Sysout ist: Tech java -jar/Users// Library/Application \ Support/MW/System/core.jar
Und wenn ich es manuell im Terminal einfügen funktioniert es ganz gut
.Und ich bekomme keine Fehlermeldungen.
Entschuldigung für mein schlechtes Englisch, im Deutsch.
Danke (oder was auch immer) Tech
Wenn Sie es für ein Projekt benötigen und verwenden Sie eine IDE wie Eclipse, müssen Sie 'ein Glas zu dem hinzufügen Buildpath'. Es gibt Unmengen an Ressourcen und ich möchte keine neuen veröffentlichen, um Doppelarbeit zu vermeiden. –
Ich denke, das könnte wegen des Klassenpfadproblems sein. –
Dies schlägt fehl, weil Sie 'Runtime.exec (String)' nicht mit Parametern verwenden können, die Leerzeichen oder Backslashes enthalten. Verwenden Sie stattdessen "Runtime.exec (String [])", z. '.exec (new String [] {" java "," -jar ", System.getProperty (" user.home ") +"/Bibliothek/Anwendungsunterstützung/MW/System/Core.jar ")})' (Hinweis keine Backslashes) –