java - 如何解决 java.lang.UnsupportedClassVersionError?JRE 55.0编译的org/openjfx/gradle/JavaFXPlugin,JRE只识别52.0
问题描述
我试图在命令提示符下运行我的 Gitlab 代码,但它失败了。 我正在使用 Gradle,它说“java.lang.UnsupportedClassVersionError: org/openjfx/gradle/JavaFXPlugin 已由 Java 运行时的更新版本(类文件版本 55.0)编译,此版本的 Java 运行时仅识别类文件版本高达 52.0"
我安装了 Java 8 和 JavaFX 11。我应该下载 Java 11 吗?但是,我听说我的一些朋友在安装 JavaFX 时遇到了困难,因为他们使用的是 Java 11。还有其他方法可以解决这个问题吗?我是一个编程菜鸟,有人可以帮助我吗?
解决方案
首先,您必须知道 JavaFX 不再包含在 SDK 中。问题是您为 FX 项目选择了错误的 Java 版本。我建议您下载更新的 Java 版本。我目前正在使用 Java 11 和 JavaFX 11。问题是您必须指定 VM 参数并链接所需的 JavaFX 模块。这是我设置 JavaFX 11 和 Java 11 的结果
本文档仅适用于 Windows!此外,我将 IntelliJ 用于我的项目
下载并安装 Java 11
在 C:\Users\YOUR USER 中创建一个名为 .jdk 或任何您想要的文件夹,将 Openjfx zip 粘贴到那里并解压缩。您可以将文件夹设置在您想要的任何位置,但将其设置在您可以轻松再次找到它的位置。
在 IntelliJ 中设置 Java 版本:点击File -> Project Structure -> Project并选择 Java 11
为 Gradle 设置 Java 版本:点击File -> Settings -> Build Execution Deployment -> 在窗口中选择Gradle JVM
如下设置 VM 选项:--module-path /path/to/javafx/sdk --add-modules javafx.controls,javafx.fxml
您可以通过用“,”分隔来添加更多模块,对此另请参阅:https ://www.jetbrains.com/help/idea/javafx.html#vm-options
这就是我在 Java 11 上设置 JavaFX 的方式。在提供 Jar 供外部使用时,您也必须使用 VM Options 启动它。除了您创建了一个已经包含模块的 Jar,请参阅 Jlink 文档。
推荐阅读
- java - 如何将此while循环转换为java中的for循环?
- r - R: '...' 在不正确的上下文中使用
- c - '<'标记之前的预期声明说明符或'...'?
- android - 如何使用 React Native 创建 Android 滑动视图?
- php - 在“功能插件”中为自定义帖子类型注册分类会导致错误 500
- rethinkdb - RethinkDB 复合主键 Join
- r - 在 Rmarkdown 中从终端样式输出切换到可点击输出
- python - 计算任意(非二叉树)树的高度
- c - 如何使用 C 将结构插入到 LinkedList 的节点中?
- selenium - 如何通过 Selenium WebDriver 使用 Xpath 访问和打印数据