Intellij包JavaFx应用程序

时间:2014-04-13 18:04:57

标签: java jar intellij-idea javafx javafx-2

我正在使用Intelij,我在打包Java应用程序时遇到了一些麻烦。

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

如果我改为创建一个jar,我的main方法显然不知道Application类是什么:Exception in thread "main" java.lang.NoClassDefFoundError: javafx/application/Application

我完全错过了什么魔法?任何正确方向的碰撞都将非常受欢迎。

1 个答案:

答案 0 :(得分:2)

如果你有这个例外,那是因为你没有在你的类路径中拥有JavaFX运行时。在JavaFX 2.2安装目录中,有一个名为rt的文件夹。在文件夹中,您有jfxrt.jar和一些本机库。

如果要运行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的类路径中。