Java: Fehler bei .jar-Datei
Hi Leute,
ich habe eine kleine Desktop-Anwendung mit Netbeans geschrieben. Wenn ich es in Netbeans ausführe, funktioniert es ohne Probleme. Erzeuge ich jedoch eine .jar-Datei und öffne diese, bekomme ich immer folgende Meldung:

Warum findet er den ClassLoader nicht?
ich habe eine kleine Desktop-Anwendung mit Netbeans geschrieben. Wenn ich es in Netbeans ausführe, funktioniert es ohne Probleme. Erzeuge ich jedoch eine .jar-Datei und öffne diese, bekomme ich immer folgende Meldung:

Warum findet er den ClassLoader nicht?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »delta« (26. Februar 2011, 17:50)
wie hast du denn die .jar datei erstellt?
eventuell ist die Manifest.MF fehlerhaft.
Hab es bis jetzt immer mit Netbeans erzeugt. Hab das ganze Projekt jetzt gelöscht und neu erstellt. Da funktioniert es dann
edit: Wenn ich das ganze mit Doppelklick ausführen will, kommt der Fehler "Could not find the main class".
In der manifest.mf steht folgendes drinnen:
|
|
Quellcode |
1 2 3 4 5 6 |
Manifest-Version: 1.0 Ant-Version: Apache Ant 1.8.1 Created-By: 1.6.0_21-b07 (Sun Microsystems Inc.) Main-Class: desktopapplication1.DesktopApplication1 Class-Path: lib/appframework-1.0.3.jar lib/swing-worker-1.1.jar X-COMMENT: Main-Class will be added automatically by build |
Der Pfad zur Main-Class stimmt auch, oder übersehe ich was?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »delta« (27. Februar 2011, 12:41)
Hallo,
die .jar-Datei findet sich normalerweise im Unterordner /dist/ im Projektverzeichnis.
Unter den Projekt-Eigenschaften (Run/Set Project Configuration/Customize...) findet sich im Menupunkt Build/Packaging die Option Build JAR after compiling.
Ist diese bei dir gesetzt?
Falls nicht, solltest du das zunächst versuchen.
Falls sie gesetzt ist und trotzdem kein jar file bzw. kein dist-Ordner erzeugt wird, wenn du Run/Clean and Build Main Project drückst (dein Projekt muss in dem Fall natürlich das main Project sein), dann liegt der Fehler tiefer.
Hilfreich wäre in dem Fall, wenn du die Ausgabe des Output Windows (Window/Output/Output) mal postest. Bzw. uns mal die genauen Schritte mitteilst, die du unternommen hast, um das Project manuell zu kompillieren.
die .jar-Datei findet sich normalerweise im Unterordner /dist/ im Projektverzeichnis.
Unter den Projekt-Eigenschaften (Run/Set Project Configuration/Customize...) findet sich im Menupunkt Build/Packaging die Option Build JAR after compiling.
Ist diese bei dir gesetzt?
Falls nicht, solltest du das zunächst versuchen.
Falls sie gesetzt ist und trotzdem kein jar file bzw. kein dist-Ordner erzeugt wird, wenn du Run/Clean and Build Main Project drückst (dein Projekt muss in dem Fall natürlich das main Project sein), dann liegt der Fehler tiefer.
Hilfreich wäre in dem Fall, wenn du die Ausgabe des Output Windows (Window/Output/Output) mal postest. Bzw. uns mal die genauen Schritte mitteilst, die du unternommen hast, um das Project manuell zu kompillieren.
im Dist-Ordner ist die .jar-Datei, welche ich mit Netbeans 6.9.1 erstellt habe. Diese wird auch neue erstellt, wenn ich sie lösche.
Komischerweise funktioniert keine .jar-Datei mehr auf dem Computer, ist da vll. etwas bei Java falsch eingestellt? Java neuinstallieren, oder weiß jemand, was falsch ist, an Netbeans kanns ja dann nicht liegen.
Komischerweise funktioniert keine .jar-Datei mehr auf dem Computer, ist da vll. etwas bei Java falsch eingestellt? Java neuinstallieren, oder weiß jemand, was falsch ist, an Netbeans kanns ja dann nicht liegen.
Was meinst du denn genau mit "nicht funktionieren"?
Angenommen, dein Projekt befindet sich in der DesktopApplication1.jar
du begibst dich in das entsprechende Verzeichnis, welches die Datei beinhaltet und du gibts
in der Console ein. Was genau funktioniert dann nicht? Wie lautet die Fehlermeldung?
Angenommen, dein Projekt befindet sich in der DesktopApplication1.jar
du begibst dich in das entsprechende Verzeichnis, welches die Datei beinhaltet und du gibts
|
|
Quellcode |
1 |
java -jar DesktopApplication1.jar |
in der Console ein. Was genau funktioniert dann nicht? Wie lautet die Fehlermeldung?
Über die Console funktioniert es ja bereits.
Wenn ich das ganze mit Doppelklick ausführen will, kommt der Fehler "Could not find the main class: C:\.....\DesktopApplication1.jar".
In der manifest.mf steht folgendes drinnen:
Wenn ich das ganze mit Doppelklick ausführen will, kommt der Fehler "Could not find the main class: C:\.....\DesktopApplication1.jar".
In der manifest.mf steht folgendes drinnen:
|
|
Quellcode |
1 2 3 4 5 6 7 |
Manifest-Version: 1.0 Manifest-Version: 1.0 Ant-Version: Apache Ant 1.8.1 Created-By: 1.6.0_21-b07 (Sun Microsystems Inc.) Main-Class: desktopapplication1.DesktopApplication1 Class-Path: lib/appframework-1.0.3.jar lib/swing-worker-1.1.jar X-COMMENT: Main-Class will be added automatically by build |
Zitat
Über die Console funktioniert es ja bereits.
ja, wenn es funktioniert, dann funktioniert es!
Zumindest liegt es dann nicht an Java, denn sonst würde es über die Konsole ja nicht funktionieren.
Vielleicht ein Problem mit dem Classpath..
Welches Betriebsystem verwendest du? Womit sind .jar files verknüpft?
Es wäre unter Windows wahrscheinlich sinnvoller, jar files mit der javaw.exe zu verknüpften. (Damit verhinderst du, dass das jar file bei einem doppelklick über die Konsole ausgeführt wird. Allerdings wird das allein nicht der Grund für den Fehler sein.)
Du solltest mal überprüfen, wie der Registry-Schlüssel für jarfiles aussieht. Der sollte sich bei
HKEY_CLASSES_ROOT\jarfile\shell\open\command
befinden und als Wert
"<Pfad zum Javaordner>\bin\javaw.exe" -jar "%1" %*
enthalten.
Ein Fehlen der -jar Anweisung könnte u.U. ein Grund dafür sein, dass Java versucht eine Klasse zu finden, die es nicht gibt (weil sie ja im jar file steckt).
Du solltest mal überprüfen, wie der Registry-Schlüssel für jarfiles aussieht. Der sollte sich bei
HKEY_CLASSES_ROOT\jarfile\shell\open\command
befinden und als Wert
"<Pfad zum Javaordner>\bin\javaw.exe" -jar "%1" %*
enthalten.
Ein Fehlen der -jar Anweisung könnte u.U. ein Grund dafür sein, dass Java versucht eine Klasse zu finden, die es nicht gibt (weil sie ja im jar file steckt).
Du solltest mal überprüfen, wie der Registry-Schlüssel für jarfiles aussieht. Der sollte sich bei
HKEY_CLASSES_ROOT\jarfile\shell\open\command
befinden und als Wert
"<Pfad zum Javaordner>\bin\javaw.exe" -jar "%1" %*
enthalten.
Besten Dank!
Der Pfand ging dort zu Notepad.
Da alles funktioniert, kann ihr geschlossen werden
Ähnliche Themen
-
PHP »-
Umleitung error-logging
(5. April 2008, 19:23)
-
Sonstige Programmiersprachen »-
Integration Eclipse
(17. August 2006, 15:40)
-
PHP »-
Chat programmieren?
(22. Februar 2004, 21:31)
-
Sonstige Programmiersprachen »-
Java Compiler und Entwicklungsumgebung
(12. November 2003, 19:55)
-
PHP »-
Tut für Art Web-FTP per Java?
(2. Juni 2003, 17:58)


