【问题标题】:Java fx error in Mac OSMac OS 中的 Java fx 错误
【发布时间】:2014-05-06 13:20:54
【问题描述】:

我正在尝试在 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

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

【问题讨论】:

  • 你运行什么 Java 版本?
  • 我的第一个猜测可能是一个过时的 java 版本,但除了来自堆栈跟踪的那个之外,我想不出原因,因为 JavaFX 应该随该版本一起提供。

标签: java macos javafx


【解决方案1】:

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

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

使用能够识别 JavaFX 并能正确打包您的 JavaFX 应用程序的打包方法,例如:

onejar 有可能在 Java 8 中为您开箱即用,因为 JavaFX 的一些类加载规则已更改为对 Java 8 更宽松,我想您可以尝试一下,看看它是否有效。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2014-10-17
    • 2013-08-12
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    相关资源
    最近更新 更多