2014-04-13 97 views
1

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

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

如果我不是创造一个罐子,我main方法显然已经不知道是什么的Application类是:Exception in thread "main" java.lang.NoClassDefFoundError: javafx/application/Application

什么神奇的是我完全丢失?任何在正确的方向碰撞将非常感激。

回答

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到classpath的Java 8.

+0

感谢您的正确回答 – Skinner927