Jar lässt sich auf bestimmten Pc nicht starten

Osram127

Mitglied
Hallo!
Ich habe ein Java Projekt in Eclipse fertiggestellt und wolltee es nun gerne als .jar exportieren. Mein Pc auf dem ich das Projekt geschrieben hatte, ist allerdings schon beim jar erstellen gescheitert. Er hat zwar ein jar ohne Fehlermeldung erstellt, dieses konnte er dann aber nicht starten (Ich hab das Exportieren noch 6 mal wiederholt, aber keine Besserung).
Dann hab ich den gleichen Code auf meinem Laptop zu einem jar exportiert, dieses konnte mein Laptop auch wunderbar starten. Dann hab ich mir diese Datei auf meinen anderen Pc gezogen, dort lässt sie sich aber wieder nicht starten. Wie kann das sein? Eigentlich dachte ich, dass jar files auf beliebigen Computern problemlos laufen können. Habt ihr eine Idee, wie ich diese jar Datei noch auf meinem Pc zum laufen kriege?
Ps: Ich habe auf meinem Pc schon 3 andere jars erstellt, diese konnte er ausführen, das geht auch jetzt noch, nur dieses Projekt geht nicht.
 
Beste Antwort
Anstatt das Programm mit der alten Version zu starten, könntest du auch stattdessen den "Fehler" beheben, dann läuft es auch unter Java 14 :)
[CODE lang="java" highlight="3,4"]
public static void setIcon(JFrame frame) {
try {
Object obj1 = new Object();
URL resource = obj1.getClass().getResource("/ReL/src/img/ugandanknuckFree.png");
BufferedImage image = ImageIO.read(resource);
frame.setIconImage(image);
} catch (IOException e) {
e.printStackTrace();
}
}
[/CODE]

Erstens brauchst du zum Laden der Resource das Class-Objekt – das kannst du direkt nutzen, anstatt die Klasse einer grad erstellten Instanz zu nutzen. obj1.getClass().getResource("/ReL/src/img/ugandanknuckFree.png");...

mihe7

Top Contributor
Da gäbe es einige Möglichkeiten. Kann es z. B. sein, dass Du auf Deinem Rechner verschiedene Java-Versionen hast? Wenn Du zum Entwickeln z. B. Java 11 verwendest, für den "Doppelklick" aber Java 8 verwendet wird, klappt das nicht.

Du kannst mal versuchen, den Spaß per Eingabeaufforderung zu starten: java -jar DeineJar.jar - evtl. weißt Du dann mehr.
 
K

kneitzel

Gast
Und wenn man ein Java Programm weiter geben möchte, dann würde ich auch generell empfehlen, das man kein jar File weiter gibt sondern ein Image erstellt. Also per JLink (ab Java 9 verfügbar) und dann ggf. noch JPackage (ab Java 14 verfügbar).

JLink baut ein Image, das die eigenen Klassen mit allen Abhängigkeiten und dem JRE in einem Verzeichnis zusammen stellt. Gestartet wird es dann über ein erstelltest Script.

JPackage kann das auch noch weiter verarbeiten - dann hast Du das etwas mehr zusammen gepackt und es wird eine EXE gestartet oder Du hast einen Installer, den andere dann installieren können.

Hintergrund dieser Empfehlung ist klar: Es gibt weniger Abhängigkeiten bezüglich des Zielrechners. Da muss man keine Java Installation voraus setzen.
 

Osram127

Mitglied
Ich habs jetzt mal über die Eingabeaufforderung probiert, da lässt sich das Programm doch tatsächlich ausführen!

Also mein Pc hat die Java Version 1.8.0_271 und mein Laptop 1.8.0_251. Bei Eclipse benutze ich JDK 1.8.

Jetzt verstehe ich aber nicht, warum der Doppelklick bei der etwas neueren Version nichts bewirkt, auf meinem Laptop mit der etwas älteren aber schon... Und warum funktioniert das Programm plötzlich über die Eingabeaufforderung ohne Probleme?
 

mihe7

Top Contributor
Das sind verschiedene Dinge. Vermutlich ist die Erweiterung .jar einfach mit einem anderen Programm verknüpft.

Tipp mal in der Eingabeaufforderung
Code:
assoc .jar
ein. Das sollte etwas wie jarfile rauskommen. Dann tippst Du anschließend
Code:
ftype jarfile
ein (jarfile natürlich ggf. ersetzen). Dort solltest Du dann sehen, was beim Doppelklick ausgeführt wird.
 

Osram127

Mitglied
Also bei "assoc .jar" kommt ".jar=jarfile" raus und bei "ftype Fehlerprogramm.jar" kommt "Dateityp "Fehlerprogramm.jar" nicht gefunden, oder diesem Dateityp wurde kein Öffnen-Befehl zugeordnet." raus. ("Fehlerprogramm" ist die jar um die es geht)
Was bedeutet das jetzt?😅
 

mihe7

Top Contributor
OK, und was passiert, wenn Du Dein jar mit dem dort angegebenen Java aufrufst? Kann es sein, dass Du ein JavaFX-Programm geschrieben hast?

Code:
"C:\Program Files\Java\jdk-14.0.2\bin\java" -jar meineJar.jar
 

Osram127

Mitglied
Dann gibt die Konsole

Java:
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
        at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1400)
        at ReL.src.rechnerOberflaeche.Launcher.setIcon(Launcher.java:81)
        at ReL.src.rechnerOberflaeche.Launcher.<init>(Launcher.java:37)
        at ReL.src.rechnerOberflaeche.Main.main(Main.java:7)
aus.

Das Programm besteht aus einigen GUIs, die ich mit javax.swing geschrieben habe.
 
Zuletzt bearbeitet:

Osram127

Mitglied
Ja sry falsches Verzeichnis, habs jetzt verbessert.
Falls es wichtig ist, die setIcon Methode sieht so aus:
Java:
public static void setIcon(JFrame frame) {
        try {
            Object obj1 = new Object();
            URL resource = obj1.getClass().getResource("/ReL/src/img/ugandanknuckFree.png");
            BufferedImage image = ImageIO.read(resource);
            frame.setIconImage(image);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
 
Zuletzt bearbeitet:

LimDul

Top Contributor
Dann findet er gewisse Resourcen nicht. Du versuchst ein Bild von der Platte zu lesen - ist das mit in das Jar gepackt? Wenn ja, dann musst du im Programm getResourceAsStream nutzen, wenn nein, musst es passend neben dem Jar liegen.
 

LimDul

Top Contributor
Ne, sieht so schon ok aus. Allerdings ist der Pfad vermutlich Falsch. Der korrekte dürfte "/img/ugandanknuckFree.png" lauten - du kannst mal in das Jar reinschauen (ist ja nur eine ZIP-Datei) wo das liegt.
 

Osram127

Mitglied
Tatsächlich ist das Verzeichnis richtig, das package ist ein bisschen komisch benannt, da ich das irgendwann mal in mein Projekt importiert habe. So kann ich das Programm auch in Eclipse testen, wenn der Pfad falsch wäre, dürfte dies ja auch nicht möglich sein.

Die Zeile 81 (Welche in der Fehlermeldung steht) ist in der Methode die Zeile 5, also scheint da irgendwas im jar nicht zu funktionieren... Aber was?

Ich verstehe jetzt halt nicht, warum mir die Konsole jetzt eine Fehlermeldung ausspuckt, das Programm aber als Eclipse Projekt immer funktioniert hat und auch als ich es vorhin über die Konsole gestartet hatte (In Beitrag #4)
 
Zuletzt bearbeitet:

Osram127

Mitglied
Ich habe den Befehl "C:\Program Files\Java\jdk-14.0.2\bin\java" -jar meineJar.jar jetzt mal in "C:\Program Files\Java\jre1.8.0_271\bin\java" geändert. Dann wurde das Programm wieder ausgeführt. Anscheinend kann das Programm also nicht mit der jdk 14.0.2 umgehen. Kann ich das irgendwie umstellen, dass das jar immer beim Doppelklick mit der jre 1.8.0_271 gestartet wird?
 

mrBrown

Super-Moderator
Mitarbeiter
Anstatt das Programm mit der alten Version zu starten, könntest du auch stattdessen den "Fehler" beheben, dann läuft es auch unter Java 14 :)
[CODE lang="java" highlight="3,4"]
public static void setIcon(JFrame frame) {
try {
Object obj1 = new Object();
URL resource = obj1.getClass().getResource("/ReL/src/img/ugandanknuckFree.png");
BufferedImage image = ImageIO.read(resource);
frame.setIconImage(image);
} catch (IOException e) {
e.printStackTrace();
}
}
[/CODE]

Erstens brauchst du zum Laden der Resource das Class-Objekt – das kannst du direkt nutzen, anstatt die Klasse einer grad erstellten Instanz zu nutzen. obj1.getClass().getResource("/ReL/src/img/ugandanknuckFree.png"); ist in dem Fall äquivalent zu Object.class.getResource("/ReL/src/img/ugandanknuckFree.png");.
Zweitens solltest du zum Laden der Resourcen eine eigene Klasse nutzen, und keine aus dem JDK selbst – also statt Object die Klasse, in der die Methode deklariert ist – wenn deine Klasse "MeineKlasse" heißt also MeineKlasse.class.getResource("/ReL/src/img/ugandanknuckFree.png");.
 
Beste Antwort
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
Kiki01 Häufigster Buchstabe lässt sich nicht ermitteln Allgemeine Java-Themen 30
T Projekt baut nicht mehr/lässt sich nicht mehr ausführen Allgemeine Java-Themen 6
M String lässt sich nicht Zusammenfügen Allgemeine Java-Themen 10
G Jar lässt sich mit macOS nicht starten Allgemeine Java-Themen 9
S Compiler-Fehler IntelliJ Projektdatei lässt sich nicht erstellen. Allgemeine Java-Themen 15
E GUI.jfm lässt sich nicht mehr öffnen Allgemeine Java-Themen 1
K jar-Datei lässt sich unter Windows nicht verwenden Allgemeine Java-Themen 3
L Jar lässt sich nicht öffnen Allgemeine Java-Themen 12
C .jar File lässt sich nur über Konsole öffnen Allgemeine Java-Themen 1
K Java lässt sich nicht Installieren Windows7Ultimate 64Bit Allgemeine Java-Themen 1
D swingset3.jnlp lässt sich nicht ausführen Allgemeine Java-Themen 2
F Spiel lässt sich nicht aus GUI starten Allgemeine Java-Themen 5
N Java lässt sich nicht löschen! Allgemeine Java-Themen 7
D Java Excel API - Schreiben in Excel lässt sich nicht über Makro starten Allgemeine Java-Themen 18
P jar-Datei lässt sich nicht ausführen Allgemeine Java-Themen 5
J Java programm lässt sich in win7 nach linux install nicht mehr ausführen Allgemeine Java-Themen 18
D JMF - lässt sich nicht im ausgewählten Format aufnehmen Allgemeine Java-Themen 2
M Java lässt sich nicht installieren Allgemeine Java-Themen 10
V JRE lässt sich nicht installieren. Allgemeine Java-Themen 10
L JDK lässt sich nicht deinstallieren Allgemeine Java-Themen 3
T KeyListener lässt sich nur einmal drücken Allgemeine Java-Themen 2
T Datenbank lässt sich un Entwicklungsumgebung öffnen, aus .jar aber nicht Allgemeine Java-Themen 9
S HWPF Problem: doc lässt sich nach Bearbeitung nicht mehr lesen Allgemeine Java-Themen 6
G Thread lässt sich mit interrupt() nicht unterbrechen Allgemeine Java-Themen 6
S Lässt sich eigne JPanel Klasse in ein Array "stecken&qu Allgemeine Java-Themen 5
Noar Klasse lässt sich nicht kompilieren Allgemeine Java-Themen 2
J jacob - lässt sich nicht installieren Allgemeine Java-Themen 8
J Simpler Thread lässt sich NIE über interrupt() unterbrechen Allgemeine Java-Themen 8
H Java lässt sich nicht öffnen. Allgemeine Java-Themen 16
S Javaprogramm lässt sich nicht per .bat Datei ausführen. Allgemeine Java-Themen 22
E Programm lässt sich nicht starten ! Allgemeine Java-Themen 16
S habe programm aber es lässt sich net mit bild einbinden! Allgemeine Java-Themen 4
M Access lässt sich nicht über "exec(command)" start Allgemeine Java-Themen 3
H DataOutputStream Ob lässt sich nicht vergleichen mit Strings Allgemeine Java-Themen 5
B jar-Datei lässt sich nicht ausführen Allgemeine Java-Themen 10
T Login lässt App crashen! Allgemeine Java-Themen 14
L Garbage Collector lässt Programm kurz hängen Allgemeine Java-Themen 10
J setUndecorated lässt GUI "spacken" Allgemeine Java-Themen 52
R Windows-Firewall lässt Java nicht durch Allgemeine Java-Themen 17
J pack() lässt JFrame grau Allgemeine Java-Themen 3
D Shell-Prozess lässt Thread nicht enden Allgemeine Java-Themen 4
T (nur) HP Photosmart Drucker lässt einzelne Seiten aus Allgemeine Java-Themen 6
N Lwjgl 3d Objekt wird schmaler, wenn es sich dreht Allgemeine Java-Themen 0
A Eclipse hängt sich auf Allgemeine Java-Themen 7
D Image bewegt sich nicht nach Klicken auf Button Allgemeine Java-Themen 15
Viper13125 Eclipse Hängt sich auf, wenn ich SimpelDateFormat drin lasse Allgemeine Java-Themen 2
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
Tiago1234 Warum hängt sich mein Programm auf? Allgemeine Java-Themen 22
C Parsen einer sich updatenden Html mithilfe von jsoup Allgemeine Java-Themen 4
Tobero Wie berechnet man ob zwei Linien sich schneiden? Allgemeine Java-Themen 2
Tobero Wie bekomme ich in welchem Quadrat sich eine Position in einem Grid befindet Allgemeine Java-Themen 11
D Anfänger versucht sich an Xtext Allgemeine Java-Themen 0
F Sich automatisch aufrufende Java-Methoden Allgemeine Java-Themen 2
kodela Inhalt eines Arrays ändert sich mysteriös Allgemeine Java-Themen 2
P JavaFX Anwendung beendet sich selbst nur als Jar Allgemeine Java-Themen 40
Drachenbauer Wie finde ich den Aufrufer zu einer Methode, die sich nicht in meinem Projekt befindet? Allgemeine Java-Themen 2
A 2D-Grafik Einfachster Ansatz, um sich wiederholende Figur in einem 2D-Image zu erkennen Allgemeine Java-Themen 1
I Lohnt sich heutzutage der Aufwand einer Portierung für MacOS Allgemeine Java-Themen 8
H Erste Schritte Ausführbare Dateien lassen sich nicht starten Allgemeine Java-Themen 5
L Excel Datei löscht sich selbst im Programm - Java Allgemeine Java-Themen 3
K OOP Daten addieren sich bei GUI-Eingabe Allgemeine Java-Themen 10
K ursprüngliche ArrayList ändert sich bei Übergabe in Methode Allgemeine Java-Themen 18
N Quicksort Programm hängt sich auf Allgemeine Java-Themen 6
S Compiler-Fehler Programm verhält sich in Eclipse anders Allgemeine Java-Themen 1
G Beendet sich der Thread selbst?! Allgemeine Java-Themen 3
J Bilder lassen sich nicht importieren Allgemeine Java-Themen 3
H Kennt sich jemand mit Eclipse und dem Thema Jar-File aus ? Allgemeine Java-Themen 6
S Programm hängt sich manchmal (selten) auf Allgemeine Java-Themen 9
D System.arraycopy verhält sich seltsam Allgemeine Java-Themen 1
C Threads Methode verhält sich merkwürdig Allgemeine Java-Themen 18
D Best Practice Gesamten Bildschirminhalt auslesen und Email schicken sobald kein Pixel sich ändert Allgemeine Java-Themen 11
X Sich wiederholende substrings finden Allgemeine Java-Themen 6
P Input/Output Inputstream verhält sich verschieden Allgemeine Java-Themen 9
T Minimax/Alphabeta Algorithmus hängt sich auf (?) Allgemeine Java-Themen 2
Tausendsassa Threads Einen Thread sich selbst schließen lassen Allgemeine Java-Themen 17
K Java installiert sich nicht ganz Allgemeine Java-Themen 15
E Anwendung verhält sich unter Mac anders als Unter Windows. Allgemeine Java-Themen 4
T BufferedImage verändert sich beim Einlsesen Allgemeine Java-Themen 1
Z Eclipse hängt sich alle paar Sekunden auf (Keine Rückmeldung). Allgemeine Java-Themen 4
L Liste führt sich nicht weiter Allgemeine Java-Themen 5
F Wert ändert sich nicht Allgemeine Java-Themen 12
T Nach Java Update: Jar Datein öffnen sich nicht mehr mit doppelklick Allgemeine Java-Themen 3
M Programm startet sich selbst neu, alte Logfiles bleiben gesperrt Allgemeine Java-Themen 2
J String Variable verändert sich plötzlich Allgemeine Java-Themen 8
F JTable mit Zellen die sich durch andere Eingaben füllen Allgemeine Java-Themen 1
E Liste löscht sich selbstständig Allgemeine Java-Themen 5
I JPanel soll sich dem JFrame anpassen Allgemeine Java-Themen 1
ruutaiokwu datenstruktur welche sich "im kreis" dreht Allgemeine Java-Themen 26
L Prog läuft in der IDE, hängt sich aber am Mac auf Allgemeine Java-Themen 0
B Threads halten sich irgendwie auf... Allgemeine Java-Themen 6
G Services verwenden sich gegenseitig Allgemeine Java-Themen 4
A Auswahl eines JEditorPane das Sich in einem JScrollPanel Befindet Allgemeine Java-Themen 2
J kann eine .jar sich selbst verschieben? Allgemeine Java-Themen 6
M Erkennen, in welcher Methode sich die VM befindet Allgemeine Java-Themen 6
Rudolf In wie fern lohnt sich C++ für einen Javaentwickler Allgemeine Java-Themen 70
A Selbsterstellte 404-Seiten bestimmen, die sich als 200 ausgeben Allgemeine Java-Themen 8
D Arrays überschreiben sich Allgemeine Java-Themen 2
G .jar Dateien lassen sich nicht mehr öffnen Allgemeine Java-Themen 2
D Dialog soll sich beim Klick auf Button schließen Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben