Intellij idea IntellijJavaFX工件-如何制作?

Intellij idea IntellijJavaFX工件-如何制作?,intellij-idea,javafx,jar,executable-jar,artifact,Intellij Idea,Javafx,Jar,Executable Jar,Artifact,我一整天都在尝试将javafx应用程序转换为jar文件。我正在使用Java1.7更新7 甲骨文有,但它似乎分散在各地。Intellij几乎完成了这项工作,但我发现以下错误: java.lang.NoClassDefFoundError: javafx/application/Application 这似乎意味着我需要告诉java jfxrt.jar在哪里。。。如果我在intellij-ctrl+shift+alt+s->Artifacts->Output Layout tab->Class P

我一整天都在尝试将javafx应用程序转换为jar文件。我正在使用Java1.7更新7

甲骨文有,但它似乎分散在各地。Intellij几乎完成了这项工作,但我发现以下错误:

java.lang.NoClassDefFoundError: javafx/application/Application
这似乎意味着我需要告诉java jfxrt.jar在哪里。。。如果我在intellij-ctrl+shift+alt+s->Artifacts->Output Layout tab->Class Path中将此jar添加到清单构建的类路径信息中,则会出现另一个错误:

 Could not find or load main class com.downloadpinterest.code.Main
在我的类路径中包含jfxrt.jar似乎很奇怪

我也尝试过创建一个ant脚本,但我觉得IntelliJ在这方面占了90%——我只是需要一些帮助来弄清楚为什么我需要包含jfxrt.jar,为什么找不到我的主类(我猜我需要以某种方式将它添加到类路径?)


有人能告诉我发生了什么事吗?我以前有一个基本的gui,它工作得很好,但是JavaFX似乎让生活变得复杂了

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

为了在运行时提供JavaFX,您可以将其与应用程序捆绑在一起,如下面或下面所示 将Java 7 Update 6作为应用程序的一项要求,然后在应用程序方便的时候尽早将
[Java_HOME]/lib/jfxrt.jar
添加到类路径中

第一个选项意味着您需要做更多的工作,但绝对要确保所有用户都拥有相同版本的库,而且您还可以在使用JRE时捆绑JRE。 第二个版本没有提供这种确定性,但更容易实现

作为第二个选项的一个变体-如果捆绑JRE实际上对您来说是可行的-您也可以将它捆绑在您的发行版中,然后包括一个shell脚本/批处理文件/可执行文件包装器,以使您的程序使用它。 这样,你就可以从选项一中获得所有的确定性,而选项二的难度只会略微提高。

我也有同样的问题。 但我发现了这篇博文:它展示了如何在Intellij12.1中做到这一点


显然IntelliJ有能力生成一个特殊的“JavaFX应用程序”工件。它会自动将所需的一切绑定到jar文件中。

我注意到,当我这样做时,Intellij只是在jar清单中添加了一行,其中包含类路径(它不会在我的jar中绑定jfxrt)。当其他人下载我的程序并尝试使用它时,这似乎会成为一个问题-例如,有些人有Mac、一些linux、一些windows,而jfxrt.jar的路径对于不同的人是不同的。你知道如何解决这个问题吗?谢谢,我问过oracle是否有一个完整的ant示例,因为到目前为止我只是设法创建了ant脚本。我会张贴一个,如果我找到一个或设法创建一个!