我有一個Java桌面應用程序與我建立的JavaFX 2,然後我試圖運行JAR。運行失敗,因此我通過命令行運行它以獲取錯誤。以下是我的了:爲什麼我的Java桌面應用程序無法運行?
編輯:我更新了堆棧跟蹤的一些代碼行已添加/刪除(此錯誤是一樣的)
C:\Users\user\Desktop>java -jar DesktopApp.jar
Error: failed to msvcr100.dll java.lang.UnsatisfiedLinkError: Can't load library: C:\Users\user\Desktop\bin\msvcr100.dll
*** Fallback to Prism SW pipeline
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Can't load library: C:\Users\user\Desktop\bin\mat.dll
at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:252)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:30)
at javafx.embed.swing.JFXPanel.initFx(JFXPanel.java:128)
at javafx.embed.swing.JFXPanel.<init>(JFXPanel.java:138)
at app.Main.<clinit>(Main.java:150)
Caused by: java.lang.UnsatisfiedLinkError: Can't load library: C:\Users\user\Desktop\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:27)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.glass.ui.Application.loadNativeLibrary(Application.java:25)
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:49)
at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:242)
... 4 more
Could not find the main class: app.Main. Program will exit.
編輯:行150的Main.java public static JFXPanel javafxPanel = new JFXPanel
。看來FX需要mat.dll並且它在錯誤的地方尋找它,所以它找不到它。我在Vista上運行程序(32位),但是當我在Windows 7(64位)上運行時,第一行(下面)不在那裏。
Error: failed to msvcr100.dll java.lang.UnsatisfiedLinkError: Can't load library: C:\Users\user\Desktop\bin\msvcr100.dll
更多的研究後:
一些互聯網研究後,我發現下面類似的討論,我現在還在學習:
- http://forums.oracle.com/forums/thread.jspa?threadID=2230876&tstart=31
- http://forums.oracle.com/forums/thread.jspa?threadID=2250369
- http://netbeans.org/bugzilla/show_bug.cgi?id=198599
它看起來像msvcr100.dll和mat.dll都涉及到JavaFX運行。我有JavaFX Netbeans插件,但我沒有運行時。我現在擁有它,但沒有解決或改變問題。我在.... netbeans \ 7.0 \ lib \ javafx2-win \ bin \中找到了msvcr100.dll和mat.dll,並且在C:\ Program Files \ Oracle \ JavaFX Runtime 2.0 \ bin中還安裝了該程序。看起來我的程序在與Netbeans一起運行時看起來是在正確的地方。
這不是我第一次運行這個程序。在過去的嘗試中,它是成功的。通過Netbeans運行不會產生任何錯誤,程序可以正常運行。
難道這是一個FX錯誤?我如何讓自己的計劃在正確的地方找到,爲什麼沒有?
您是否有爲您的類定義的構造函數?另外,SUN的官方默認JVM是什麼? –
這是Java FX嗎? –
@Saher,添加構造函數'public Main(){}'沒有幫助。 JVM可以從java.com或sun.com官方獲得。錯誤來自於用於在NetBeans中成功運行的相同JVM。 – Dorothy