JVM Launcher - Could not find main class

Alenduhl

Mitglied
Hallo,

ich habe jetzt seit mehreren Tagen immer wieder gesucht und verschiedene Dinge ausprobiert. Hier ist mein Problem:

Ich habe mit Ecplipse eine Java-Swing-Anwendung gebaut, in die ich mit dem javafx.embed.swing.JFXPanel einen javafx.scene.web.WebView einbinde. Wenn ich das ganze dann über Eclipse starte läuft es ohne Probleme. Wenn ich daraus dann aber eine Runnable JAR mache kriege ich den Fehler

Could not find the main class:
...\test.jar. Programm will exit.

Wenn ich die javafx Klassen nicht verwende ist alles super.

Ich habe es schon mit e(fx)clipse versucht, aber keine runnable jar erzeugen können.

Kann mir da jemand weiterhelfen?

Danke im Vorraus :)
 

turtle

Top Contributor
Da brauchen wir schon mehr Informationen.

Ich würde mal von der Kommandozeile das Kommando "java -jar test.jar" eingeben und sagen, was da alles für Ausgaben kommen.

Weiterhin interessiert uns alle sehr die Manifest Datei MANIFEST.MF im META-INF Ordner in der Jar-Datei. Vielleicht gibt Dir dies hier ein paar Hilfen.
 

Alenduhl

Mitglied
Vielen Dank erst einmal für die Hilfe :) Eigentlich eine Schande, dass ich das nicht selbst so aufgerufen habe :(

Ich konnte das Problem "beheben", aber es ist eine sehr unschöne Lösung. Der Aufruf über die Konsole hat mir folgendes Problem gegeben:

Code:
Exception in thread "main" java.lang.RuntimeException: java.lang.UnsatisfiedLink
Error: Can't load library: C:\#5\java\normal.projects\bin\mat.dll
        at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:269)
        at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:68)

        at javafx.embed.swing.JFXPanel.initFx(JFXPanel.java:127)
        at javafx.embed.swing.JFXPanel.<init>(JFXPanel.java:144)
        at phy.minecraft.main.GUI.fillTabMap(GUI.java:250)
        at phy.minecraft.main.GUI.buildGui(GUI.java:101)
        at phy.minecraft.main.GUI.<init>(GUI.java:82)
        at phy.minecraft.main.Manage.<init>(Manage.java:85)
        at phy.minecraft.main.Main.main(Main.java:11)
Caused by: java.lang.UnsatisfiedLinkError: Can't load library: C:\#5\java\normal.projects\bin\mat.dll
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.load0(Unknown Source)
        at java.lang.System.load(Unknown Source)
        at com.sun.glass.utils.NativeLibLoader.loadLibraryFullPath(NativeLibLoader.java:155)
        at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:85)
        at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:30)
        at com.sun.glass.ui.Application$1.run(Application.java:40)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.glass.ui.Application.loadNativeLibrary(Application.java:38)
        at com.sun.glass.ui.win.WinApplication.<clinit>(WinApplication.java:33)
        at com.sun.glass.ui.win.WinPlatformFactory.createApplication(WinPlatformFactory.java:20)
        at com.sun.glass.ui.win.WinPlatformFactory.createApplication(WinPlatformFactory.java:17)
        at com.sun.glass.ui.Application.Run(Application.java:63)
        at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:259)
        ... 8 more

Ich habe dann einfach alle dlls die verlangt wurde passend in das Verzeichnis kopiert und muss das ganze dann mit
Code:
java -jar test.jar
in einer Batchdatei starten, aber das kann ja nicht die Lösung sein. Bestimmt kann man das irgendwie durch die Manifestdatei lösen, aber da weiß ich leider nicht wie. Hier ist meine recht leere Manifestdatei:

Code:
Manifest-Version: 1.0
Class-Path: .
Main-Class: phy.minecraft.main.Main

Da Eclipse mir alles nötige abnimmt habe ich damit jetzt nicht so viel Erfahrung gemacht. Kann man dem sagen wo er sich diese dlls her holen soll? Bei Mac und Linux dürfte das dann ja auch wieder anders sein und ich hätte es schon gerne so, dass ich diese ganzen Bibliotheken nicht mitkopieren muss, die sind ja nach der JavaFX-Installation schon da :(
 
M

maki

Gast
Ich habe dann einfach alle dlls die verlangt wurde passend in das Verzeichnis kopiert und muss das ganze dann mit java -jar test.jar in einer Batchdatei starten, aber das kann ja nicht die Lösung sein.
Doch, dass ist eine mögliche Lösung, wieso denn auch nicht?
 

Alenduhl

Mitglied
Ja, möglich ist sie, aber wenn die Bibliotheken schon auf dem System vorhanden sind, dann muss ja irgendwie möglich sein die zu nutzen. Und so wie es jetzt ist müsste ich für Mac und Linux das ganze nochmal gesondert machen, obwohl ich selbst ja nur Java mache, der native Teil ist ja schon mit der JavaFX installation auf dem System gelandet.
 

Neue Themen


Oben