JavaFX的的IntelliJ神器 - 你是怎么做的?(Intellij Javafx artif

2019-07-31 08:01发布

我一直在试图整天把我的JavaFX应用程序到一个JAR文件。 我使用Java 1.7更新7。

甲骨文有一些信息 ,但它似乎只是散落得到处都是。 的IntelliJ几乎做的工作,但我得到了以下错误:

java.lang.NoClassDefFoundError: javafx/application/Application

这似乎是说,我需要告诉Java的其中jfxrt.jar是......如果我在的IntelliJ这个jar添加到我的类路径信息的清单构建 - CTRL + SHIFT + ALT + S - >工件 - >输出布局选项卡 - >类路径,然后我得到另一个错误:

 Could not find or load main class com.downloadpinterest.code.Main

我觉得奇怪,必须包括在类路径中jfxrt.jar虽然...

我试图创建一个Ant脚本为好,但我觉得自己的IntelliJ是那里的方式90% - 我只是需要一点帮助找出为什么我需要包括jfxrt.jar,为什么我的主类没有被发现(我猜我需要它以某种方式加入到classpath中?)。

任何人都可以给我介绍了以发生了什么? 我有这之前工作的罚款基本gui,但JavaFX的似乎是使生活变得复杂!

Answer 1:

你的假设是正确的,你需要的JavaFX添加到类路径。
它位于[JDK]/jre/lib/jfxrt.jar

要在运行时提供的JavaFX,你可以用你的应用程序中捆绑它,这所示甲骨文指南 使Java 7更新6为您的应用需求,再加入[JAVA_HOME]/lib/jfxrt.jar在应用程序的方便时尽早类路径。

第一个选项对你意味着更多的工作,但使绝对确保所有用户都具有库相同版本 - 你可以捆绑JRE为好,而你在这。 第二个版本不提供此确定性,但更容易实现。

作为一个变型的第二个选项 - 如果捆绑的JRE实际上可能为你 - ,你也可以只捆绑在你的发行版,然后包括一个壳脚本/批处理文件/可执行的方式包装,以使你的程序中使用它。 这样一来,你得到所有从我选择的确定性,只有在困难的中等升压从选项II。



Answer 2:

我有同样的问题。 但我发现这个博客帖子: 包装的JavaFX 2应用在IntelliJ IDEA的12.1 ,显示如何做到这一点的IntelliJ中12.1

显然的IntelliJ必须产生一个特殊的“JavaFX应用程序”神器的能力。 它会自动捆绑它需要你的JAR文件内的一切。



文章来源: Intellij Javafx artifact - how do you make it?