我有一个用Java 8编译的可执行jar文件,其中包含一个名为app.jar
的JavaFX应用程序。
安装Java 8后,我可以简单地使用java -jar app.jar
来运行它。
现在我只安装了Java 11,运行上面的命令会产生以下错误:
Error: Could not find or load main class <...>
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application
因为Java 11不再包含JavaFX。
因此,我开始考虑安装JavaFX。 openjfx.org以两种形式提供JavaFx:SDK和JMOD文件。
我认为我不需要SDK,因为我不是在创建JavaFX,而只是在运行JavaFX。剩下的就是JMOD文件。
但是,the Oracle documentation on JMODs说:“ JMOD文件格式使您可以聚合.class文件,元数据和资源以外的文件。此格式可移植,但不能执行,这意味着您可以在编译时使用它。或链接时间,而不是在运行时”,因此似乎他们不会帮助我运行应用程序。
问题:
app.jar
?答案 0 :(得分:0)
好像您错过了将PATH_TO_FX环境变量添加到系统中一样。 You can find a guide on how to do that here:
如果它是Java 8应用程序,那么最简单的选择就是getting Oracle JDK 8,并将其定义为系统环境中的JDK。