2016-12-25 3 views
0

Ich versuche, ein externes jar in meiner Java-Anwendung auszuführen. Das .jar ist in meinem Java-Paket ("gui"). Ich habe versucht:ProcessBuilder: Starten Sie .jar in Java-Paket

  String filepath = this.getClass().getResource("ServerRSS.jar").getPath(); 
      ProcessBuilder pb = new ProcessBuilder("java", filepath); 

System.out.println (filepath); Ergebnisse in:

/C:/Users/hox/workspace/PraktikumProg/bin/gui/ServerRSS.jar 

Mein Programm startet nicht. Könnte das Problem der Schrägstrich vor dem C sein?

EDIT: Die Lösung war:

URL filepath = this.getClass().getResource("ServerRSS.jar"); 
ProcessBuilder pb; 
pb = new ProcessBuilder("java", "-jar", new File(filepath.toURI()).toString()); 
Process p = pb.start(); 
+0

Bitte beachten Sie, dass ich meine Antwort verbessert habe. Bitte geben Sie ein Feedback, wenn das hilft! – GhostCat

Antwort

1

Zuerst sollten Sie Ihren Befehl arbeiten ... einfach auf der Kommandozeile.

Und nur dann versuchen, es von innerhalb von Java mit einem ProcessBuilder auszuführen.

Einfache Antwort ist wahrscheinlich: zu verwenden -jar beim Aufruf von Java.

java someJar.jar 

funktioniert nicht!

Und ja, dieser Schrägstrich spielt eine große Rolle. Sie möchten einfach einen vollständig korrekten Dateipfad dort.

Schließlich: Sind Sie wirklich sicher, dass Sie eine neue JVM starten möchten, um eine Hauptmethode in einer Klasse auszuführen? Sie können dies innerhalb Ihrer aktuellen JVM tun - ohne die zusätzlichen Leistungs- und Komplexitätskosten einer zweiten JVM!

Verwandte Themen