java - Intellij 封装 JavaFx 应用程序

标签 java jar intellij-idea javafx javafx-2

我正在使用 Intelij,但在打包 Java 应用程序时遇到一些问题。

我正在使用 Artifact 来打包我的应用程序。可以选择创建 Jar 包或 JavaFx 包。如果我使用 JavaFx 工件,我需要指定一个 Application 类来启动。我的包使用标准 java main(String[] args) 类型启动,因为它还可以选择严格从命令行运行(无 UI),因此此选项对我不起作用。

如果我创建一个 jar,我的 main 方法显然不知道 Application 类是什么:线程“main”java.lang 中的异常。 NoClassDefFoundError:javafx/application/Application

我完全缺少什么魔力?任何朝正确方向的碰撞将不胜感激。

最佳答案

如果您遇到此异常,那是因为您的类路径中没有 JavaFX 运行时。在 JavaFX 2.2 安装目录中,有一个名为 rt 的文件夹。在该文件夹内,您有 jfxrt.jar 和一些 native 库。

如果您想运行 JavaFX 应用程序,jfxrt.jar 必须包含在类路径中。你没有它,这就是为什么 Java 找不到 javafx.application.Application 类。

例如(在 Windows 中): C:\Program Files\Oracle\JavaFX 2.2 SDK\rt C:\Program Files\Oracle\JavaFX 2.2 SDK\rt\bin*.dll C:\Program Files\Oracle\JavaFX 2.2 SDK\rt\lib\jfxrt.jar

如果您使用 Oracle Java 8,则 jfxrt.jar 将自动位于运行时类路径中,因此您无需手动将 jfxrt.jar 添加到Java 8 的类路径。

关于java - Intellij 封装 JavaFx 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23046344/

相关文章:

java - 使用循环进行输入验证

java - JAR 不包含根文件

jar - 分发 .jar 文件

java - Intellij Spring 项目到 eclipse 不工作

java - 使用 restFb 将带有图片的帖子发布到 facebook 页面

java - PDFbox 中的计算字符串宽度似乎只计算字符数?

intellij-idea - 在突出显示的用法之间导航的快捷方式

java - 运行简单的程序,无需在 IntelliJ IDEA 中创建新类

java - 将节点添加到 Java 中以编程方式创建的 JTree

java - 无法在 Web 启动中找到 com.simontuffs.onejar.Boot