Mac OS中的Java fx错误

时间:2014-03-27 13:57:11

标签: java macos javafx

我正在尝试在mac os中使用JavaFX运行应用程序,但是我收到了这个错误:

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

我使用fat jar插件将应用程序打包到一个jar中,用于eclipse,有或没有jfxrt.jar,问题仍然存在

1 个答案:

答案 0 :(得分:1)

  

使用胖jar插件在一个jar中应用

不要那样做。如果您想使用该插件,打包JavaFX应用程序,然后使用插件创建者记录功能请求,以便为插件添加JavaFX支持。

使用了解JavaFX并将正确打包JavaFX应用程序的打包方法,例如:

Java8可能会为你开箱即用,因为JavaFX的一些类加载规则改为让Java 8更加轻松,我想你可以尝试一下,看看它是否有效。 / p>

  

我打包应用程序。 。 。与。 。 。 jfxrt.jar

除非您使用应用程序打包整个JRE,否则我不建议这样做。在Maven project with JavaFX (with jar file in `lib`)的答案中解释了不这样做的原因(我知道你没有使用Maven,但推理类似)。