我有一个没有任何GUI的小型桌面应用程序。我使用 Ant 来开发,运行,构建和发布它。我没有为它创建一个jar文件。我使用 .sh 文件在版本中使用附加的JRE 启动/运行它。
现在我在它上面添加了一个简单的 JavaFX 2 GUI。我仍然可以使用Ant开发,运行,构建和发布。 JavaFX 的Ant文件中没有特殊目标或添加项。发布后,我无法再使用现有的.sh文件运行它。我收到以下错误:
线程中的异常" main" java.lang.NoClassDefFoundError:javafx / application / Application
如果我更改为在 .sh 文件中没有 JavaFX 的情况下启动另一个入口点,则可以正常工作。
我很确定如果我使用Swing它会正常工作。为什么 JavaFX 很特别?我是否必须使用 Ant 或 javafxpackager 进行特殊部署?有什么简单的解决方法吗?它只是一个桌面应用程序。
我正在使用jdk / jre 1.7.0_51和linux。
我是JavaFX的新手。不知道是否值得学习。
答案 0 :(得分:3)
使用Java 7或更早版本时,默认情况下JavaFX运行时jar文件不在类路径中。您需要将它包含在类路径中。
将jar jfxrt.jar
添加到类路径中;您可以在Java安装的jre\lib
目录中找到它。
这将改变Java 8;在那里,JavaFX默认位于类路径中,您不需要自己将jar添加到类路径中。
答案 1 :(得分:1)
确保您的应用程序中包含的JRE带来了您需要的JavaFX版本。最新版本的JRE应该没有任何问题,如下所述:
http://www.oracle.com/technetwork/es/java/javafx/downloads/index.html