我正在尝试在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,问题仍然存在
答案 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,但推理类似)。