如何解决如何使用Java 11运行已编译的Java 8 JavaFX应用程序jar?
我有一个用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文件,元数据和资源以外的文件。此格式可移植,但不能执行,这意味着您可以在编译时使用它。或链接时间,而不是在运行时”,因此似乎他们不会帮助我运行应用程序。
问题:
- 如何在Java 11运行时中运行上面定义的
app.jar
? - 是否有任何文档说明如何执行此操作,如果可以,那么在哪里?
解决方法
好像您错过了将PATH_TO_FX环境变量添加到系统中一样。 You can find a guide on how to do that here:
如果它是Java 8应用程序,那么最简单的选择就是getting Oracle JDK 8,并将其定义为系统环境中的JDK。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。