2014-03-27 60 views
0

我試圖運行在Mac OS中使用JavaFX應用程序,但我得到這個錯誤:的Java FX錯誤

Exception in thread "main" java.lang.RuntimeException: java.lang.NoSuchMethodError: getScaleFactor 
at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:281) 
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:124) 
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:163) 
at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:47) 
at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:115) 
at java.lang.Thread.run(Thread.java:744) 
Caused by: java.lang.NoSuchMethodError: getScaleFactor 
at com.sun.glass.ui.mac.MacApplication._initIDs(Native Method) 
at com.sun.glass.ui.mac.MacApplication.<clinit>(MacApplication.java:34) 
at com.sun.glass.ui.mac.MacPlatformFactory.createApplication(MacPlatformFactory.java:33) 
at com.sun.glass.ui.Application.Run(Application.java:103) 
at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:271) 
... 5 more 

我用脂肪罐子Eclipse插件與封裝在一個罐子裏的應用程序和沒有jfxrt.jar,問題依然存在

+0

你運行什麼Java版本? – user432

+0

版本1.7.0_51-b13 –

+0

我的第一個猜測應該是一個過時的java版本,但除堆棧跟蹤以外,我不能想到原因,因爲JavaFX應該與該版本一起發貨。 – user432

回答

1

application in one jar using fat jar plugin

不這樣做。如果您想使用該插件來打包JavaFX應用程序,那麼請向插件創建者記錄一個功能請求,以便爲該插件添加JavaFX支持。

使用的包裝方法,它都知道的JavaFX,將正確打包JavaFX應用程序,例如:

有一個機會,onejar可能會爲你工作的開箱即用的Java 8的一些JavaFX的類加載規則改爲更寬鬆的Java 8,我想你可以嘗試一下,看看它是否作品。

I package the application . . . with . . . jfxrt.jar

我不建議這樣做,除非您打包整個JRE與應用程序。不回答這個問題的原因可以在以下答案中解釋:Maven project with JavaFX (with jar file in `lib`)(我知道你沒有使用Maven,但推理類似)。