sorry für dieses Posting, hier gibt es wahrscheinlich hunderte von Beiträgen zu dieser Problematik und im Netz allgemein, aber ich werde einfach nicht schlau ...
Ich kann grundsätzlich ein ausführbares JAR erstellen - automatisch mit Eclispe und einem Dummy Projekt, das ein File schreibt ...
Aber meine Applikation startet einfach nicht. Ich versuche die Applikation mit einem Doppelklick auf das JAR zu starten (klappt mit dem Dummy Programm) und nichts geschieht ... würde ich in der Konsole mehr sehen ?
Ich habe keinerlei externe JAR's in meinem Projekt (nur SWING und Java) und die Anwendung läuft aus der IDE einwandfrei.
Ok, ich habe jetzt das JAR mal aus der Konsole raus gestartet mit java Hoover, Hoover ist mein Projektname. Gibt folgende Fehlermeldung:
Exception in thread "main" java.lang.NoClassDefFoundError: Hoover
usw.
Ich habe aber meine Klasse mit der main Methode beim Export in Eclipse angegeben.
Es gibt btw auch keine Klasse Hoover, sondern nur das Projekt heisst so ...
Ich habe das Problem gefunden: Ich verwende eine XML Datei in meinem Programm, wahrscheinlich müsste ich diese jetzt irgendwie in das JAR einbinden können ... weiss aber noch nicht genau wie ...
Ich habe jetzt in meiner Ordnerstruktur wo ich das JAR File hinkopiert habe ein zusätzliches Verzeiches \src\ressources (wie das File in Eclipse platziert ist) gemacht und das XML File da reinkopiert und mein Programm startet ! Ist natürlich trotzdem keine Lösung
Guck dir classloader an, sit ein anfangs beshissenes thema, aber damti aknsnte alles in die jar mit reinpacken und von dort laden oder jedem anderen ort, zb einer website Muss dann nur noch der pfad/url für geändert werden. Generell kann ich java und File objects im normalfall nicht empfehlen, ausser man benutzt sie um auf externe Dateien zuzugreifen.
Möglicherweise musst du hinter [c]getResource("...")[/c]auch noch [c]toURI()[/c]aufrufen, das hab ich jetzt nicht überprüft.
Selbst mit einem eigenen ClassLoader herumwurschteln brauch man normalerweise nicht.
Ich habe jetzt das gleich Problem - ich habe zum ersten mal eine jar erstellt, die nicht startet.
Über die IDE (IntelliJ) klappt natürlich alles einwandfrei - aber wenn ich die erstellte jar anklicke passiert nichts.
Über die Konsole bekomme ich folgende Meldung:
Code:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(Unknown Source)
at com.sun.javafx.application.LauncherImpl.launchApplication(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: javafx.fxml.LoadException:
file:/C:/gm.jar!/gmt/view/MainView.fxml
at javafx.fxml.FXMLLoader.constructLoadException(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at gmt.Start.start(Start.java:25)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(Unknown Source)
... 1 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.reflect.misc.Trampoline.invoke(Unknown Source)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.reflect.misc.MethodUtil.invoke(Unknown Source)
... 18 more
Caused by: java.lang.NullPointerException
at java.lang.String.contains(Unknown Source)
at gmt.controller.MainController.initialize(MainController.java:49)
... 27 more
Exception running application gmt.Start
Mit FXML habe ich noch nicht viel Erfahrung, ich verstehe nicht weshalb die FXML Datei über die IDE gefunden und geladen wird, bei der jar aber nicht...