【问题标题】:Unable to deploy JavaFX 2 jar from Eclipse无法从 Eclipse 部署 JavaFX 2 jar
【发布时间】:2012-12-18 02:54:27
【问题描述】:

我有一个使用 JavaFX 2 的 Eclipse 项目。FXML 文件是使用 Scene Builder 生成的。我的目标是创建一个可运行的 Jar。无论我尝试哪种方式,在运行 jar 文件时,我总是会收到 JavAFX Launcher 错误“运行应用程序时出现异常”/。堆栈跟踪如下。

如果我使用 JavaFX ant 任务或 javafxpackager 实用程序,结果相同。

Exception in Application start method
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.javafx.main.Main.launchApp(Main.java:642)
    at com.javafx.main.Main.main(Main.java:805)
Caused by: java.lang.RuntimeException: Exception in Application start method
    at     com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:403)
    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(Unknown Source)
Caused by: java.lang.NullPointerException
    at controllers.Main.start(Unknown Source)
    at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:319)
    at com.sun.javafx.application.PlatformImpl$5.run(PlatformImpl.java:206)
    at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:173)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
    at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:73)
    ... 1 more

【问题讨论】:

    标签: eclipse jar javafx


    【解决方案1】:

    如果你可以使用maven,那么请关注this tutorial创建可执行的jar,exe ..等

    用于 JavaFX 的 Maven 插件:使用此插件可以轻松得多 快速启动并运行并构建复杂的分布 捆绑包(例如可执行 JAR 文件、本机安装程序和 webstart 包)。

    【讨论】:

    • 感谢您的建议,但是将 eclipse 项目转换为 Maven 非常耗时。我发现了问题并将其发布在答案中。
    【解决方案2】:

    问题在于代码中的相对路径。在引用图像或 FXML 文件时,我会使用相对路径。这在直接从 Eclipse 运行时工作正常,但不能作为可运行的 jar 工作。将路径更改为绝对路径可以解决问题。

    编辑:对于遇到此错误并使用 Scene Builder 制作 FXML 文件的任何人,请注意,我必须使用文本编辑器编辑从 Scene Builder 生成的 FXML 文件,以将相对路径转换为绝对路径。

    【讨论】:

    • 哇,该错误消息对于确定问题的根本原因确实没有帮助 - 很好地跟踪它。您可以将自己的答案标记为正确。
    • 如果你正在制作一个罐子,你将如何使用绝对路径?您能否发布一个关于相对路径和绝对路径如何的示例?
    猜你喜欢
    • 2013-09-19
    • 2014-11-17
    • 2015-04-30
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多