Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD

Hallo!

Habe folgendes Problem. Ich habe ein Java-Programm bekommen. Wenn ich es auf einem langsamen USB-Stick starte, läuft es einwandfrei. Kopiere ich es auf die Festplatte, stürzt es sofort ab. Woran kann das liegen?
 
Du kannst ein JAR file nicht direkt starten. Versuch mal:
Java:
java -jar /Users/sebastianherrmann/Desktop/svp/SVP_starten.jar

BTW: Da Du anscheinend macOS benutzt, wie genau hast Du das JRE/JDK installiert? Hast Du OpenJDK per Homebrew installiert ???
 
Wenn ich es auf einem langsamen USB-Stick starte, läuft es einwandfrei. Kopiere ich es auf die Festplatte, stürzt es sofort ab.
Also Java muss installiert sein, sonst würde es ja nicht von USB Stick laufen.

Der wichtige Schritt ist also, dass wir die Fehlermeldung bekommen. (So wie @Oneixee5 bereits in #5 beschrieben und gesagt hat.)

Das Starten auf der Kommandozeile hat dann @LucasGlockner in #7 beschrieben.

Ich vermute, dass das jar File auf weitere Dateien zugreifen möchte. macOS schützt die Dateien des Users jedoch, so dass ein Zugriff erst freigegeben werden muss. Dazu in den Einstellungen unter Sicherheit & Datenschutz entsprechende Rechte an Java geben. Das kann entweder unter Festplattenvollzugriff oder über Dateien und Ordner etwas selektiver geschehen.

Aber: Damit haben alle Java Programme dieses Recht. Das sollte Dir also bewusst sein.

Der bessere Weg wäre meiner Meinung nach, dass man eben kein jar weitergibt sondern mit JPackage (Setzt ein aktueller Java voraus, ab 14 oder so ist es verfügbar) eine Applikation baut. Dann hast Du eine typische Mac Anwendung, welche Du einfach kopieren kannst wie beim Mac üblich und entsprechende Rechte gelten für diese Applikation.
 
Würde empfehlen das aktuelle OpenJDK via Homebrew zu installieren.

So oder so, wenn Java installiert ist, sollte das java-Executable im PATH sein, so dass Du im Terminal einfach folgenden Befehl eingeben kannst:

Java:
java -jar /pfad/zum/programm.jar

Dann schaust Du einfach was die Fehlermeldung besagt, wenn das Programm crasht, z.B. ob irgendeine Exception fliegt...
 
Zuletzt bearbeitet:
Wir wissen doch gar nicht, welches OS, welche Java-Variante, welches jar-File, welche zusätzlichen Dateien, und wie er was wohin kopiert hat und wie er was versucht hatte zu starten.

Also nur Fragezeichen hier.

Normalerweise ist der Aufruf einfach:

cd pfad/zu/datei/
java -jar Datei.jar

Das lässt sich aber nur mutmaßen.
 
Auf dem Mac bin ich kein Freund davon, Java per Homebrew zu installieren. Das ist eine gute Möglichkeit für viele Tools aber bezüglich Java wäre ich da nie auf die Idee gekommen.

Ich nutze da gerne die Installer von Adoptium (und dann auch GraalVM und so, aber das ist ein anderes Thema. Und dann nutze ich halt
/usr/libexec/java_home um auf die ganzen Möglichkeiten zuzugreifen.

Aber da er java.com erwähnt hat, wird er wohl einfach Java 1.8 von Oracle installiert haben. Aber da er Java nutzen konnte vom Stick wird er vermutlich erst einmal kein Problem mit der Java Installation haben. Daher würde ich da erst eimal nicht weiter herum schrauben.

Ich schätze ja, dass es einfach Probleme mit dem Zugriff auf das Dateisystem gibt, da java versucht, auf Dateien in seinem Home Verzeichnis zuzugreifen. Und das muss halt erlaubt werden. macos ist da teilweise eine ganz schöne Bitch 🙂
 

Zurück
Oben