编辑:更新了我的问题,以更好地反映我的问题是什么。原始问题:是否有办法防止VScode中导出的Jar文件使用--启用-预览进行编译?
我正在VScode中开发一个使用JavaFX的java项目。每当我使用出口罐按钮导出项目的jar并尝试在cmd中运行jar时,我都会得到以下错误:
Error: LinkageError occurred while loading main class MyProgram
java.lang.UnsupportedClassVersionError: Preview features are not enabled
for MyProgram (class file version 61.65535). Try running with '--enable-preview' 每当我尝试使用--启用预览标记时,我会得到以下信息:
Error: JavaFX runtime components are missing, and are required to run this application
这是我使用的JDK,我的JavaFX版本为17.0.1。
openjdk version "17.0.1" 2021-10-19 LTS
OpenJDK Runtime Environment Microsoft-28056 (build 17.0.1+12-LTS)
OpenJDK 64-Bit Server VM Microsoft-28056 (build 17.0.1+12-LTS, mixed mode, sharing)解决类似问题的其他解决方案似乎是有多个JDK的问题,但我只在设备上下载了这个JDK,而且我只下载过这个版本。JavaFX被正确地配置到我的项目中,我的JAVA_HOME路径被配置到JDK文件夹& path的路径是JDK。
程序在VScode中运行时运行良好,当我导出jar并试图在cmd或终端中运行它时,会弹出此错误。
我用一个基本的打印(不使用JavaFX)测试它,我也得到了同样的错误,但是当我使用启用预览标记运行时没有出现错误。
发布于 2022-03-21 07:08:16
感谢注释中的帮助&这个博客,将以下内容添加到VM参数中:
--module-path path/to/your-version-of-javafx/lib" --add-modules javafx.controls,javafx.fxml
并在cmd/终端中运行以下命令
java --enable-preview --module-path path/to/your-version-of-javafx/lib" --add-modules javafx.controls,javafx.fxml -jar MyProgram.jar
允许jar无错误地运行。
博客也有其他解决方案/方法来解决这个问题。
https://stackoverflow.com/questions/71543809
复制相似问题