微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用Java 11运行已编译的Java 8 JavaFX应用程序jar?

如何解决如何使用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 举报,一经查实,本站将立刻删除。