JavaFX Fehler beim Starten einer Jar

Veraenderer

Mitglied
Hi,
ich hab nen einfaches Programm geschrieben das JavaFX verwendet. In Eclipse funktioniert alles perfekt, aber wenn ich es exportiere kommt folgende Fehlermeldung:
Exception in Application constructor
...

Ich habe Java geupdatet, alte Java Versionen entfernt, die jfxrt.jar als externe jar eingefügt etc. .

Mit leicht verzweifelten Grüßen
Veraenderer
 
Bitte die vollständige Fehlermeldung posten (damit da keinen möglichen wichtigen Informationen verloren gehen)
Kommt der Fehler schon beim Export oder sobald du das exportierte Jar starten willst?
 
Wenn ich die exportierte Datei ausführe:
C:\Users\Kristian\Desktop\Datenbank
Exception in Application constructor
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(Unk
nown Source)
at com.sun.javafx.application.LauncherImpl.launchApplication(Unknown Sou
rce)
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: Unable to construct Application instance:
class gui.Main_Gui_Class
at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown So
urce)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(
Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou
rce)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$161
(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(Unknown
Source)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(Unknown Sourc
e)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(Unknown S
ource)
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.NullPointerException
 
Entweder hast du nicht alles kopiert (scrollen möglich?)
Oder deine Konsole zeigt nur eine begrenzte Anzahl an Zeichen an (dann höher stellen).

Caused by: java.lang.NullPointerException

Du bekommst ganz einfach eine NullPointerException.
Leider fehlen hier eben die Zeilen nach der zitierten, diese würden verraten wo genau der Fehler passiert.

Wenn du dein Projekt von deiner IDE aus startest funktioniert alles wunderbar?
 
Wenn ich es aus meiner IDE starte funktioniert alles problemlos.

Interessanterweise funktioniert ein anderes Programm wo ich JavaFX verwendet habe problemlos wenn ich es exportiere Oo

Anscheinend wurden beim kopieren nicht die letzten 5 Zeilen mit kopiert:
Caused by: java.lang.NullPointerException
at datenmanagment.Data.lade(Data.java:50)
at datenmanagment.Data.<init>(Data.java:15)
at gui.Main_Gui_Class.<init>(Main_Gui_Class.java:31)
... 13 more
Exception running application gui.Main_Gui_Class
 
Was ist in Data.java Zeile 50? In der Data.lade Funktion?

Wenn ich raten würde, dann ist da das laden einer Ressource über die Class.getRessourceAsStream. Diese Funktion kann auch null zurück geben, wenn die Ressource nicht geladen werden kann. Ist die Ressource, die Du laden willst, richtig im Jar enthalten?

Konrad
 
Der Fehler lag in der lade funktion.
Zusammengefasst wollte ich Daten aus einem externen Ordner laden. Dafür musste ich in Eclipse einen Ordner höher gehen, aber in der jar im gleichen Ordner bleiben
 
Wenn du deinen Pfad immer über die gleiche Klasse aufbaust z.B.:
Java:
FXMLLoader loader = new FXMLLoader(MainApplication.class.getResource("xxxxxx"));
solltest du in Zukunft solche Probleme vermeiden können.
 

Zurück
Oben