Che*_*075 8 java visual-studio-code java-11
我在 VSCode 工作区中设置 JRE 时遇到问题。我认为问题是正确设置我的java.home,settings.json但我仍然收到此错误:
Build path specifies execution environment JavaSE-10. There are no JREs installed in the workspace that are strictly compatible.
我在这里查看了答案(警告 - 构建路径指定执行环境 J2SE-1.4),但该解决方案适用于 Eclipse 而不是 VSCode。
我认为这是因为 JRE 指定了 Java10 而我使用的是 Java11。
关于如何为 VSCode 设置 JRE 的任何建议?
另外,这是我正在使用的 Java 版本和我的设置。
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
11.0.1, x86_64: "Java SE 11.0.1" /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)
我java.home在 VSCode 中的设置:
"java.home": "/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home"
要完全消除警告/错误,我相信您需要:
JavaSE-10”作为name数组java.configuration.runtimes中的settings.json鉴于这个问题是在 2018 年提出的,对于我当前版本的 VS Code (1.49.2),它将在“兼容”模式下使用更高的 JDK 版本,并且类似的消息只是警告。
由于我自己在弄清楚和配置所有内容时遇到了一些困难,而且这在 Google 搜索中仍然排名靠前,因此我正在记录设置的完整说明java.configuration.runtimes(特别是关于 Windows和WSL),因为对我来说最好不要更改使用该设置的整个默认 JDK java.home(特别是因为如果使用 JDK 版本 < 11,这也可能会破坏 JSL,如下所述)。
根据:
https://code.visualstudio.com/docs/java/java-project#_configure-jdk:
https://github.com/redhat-developer/vscode-java#setting-the-jdk
java.home设置应该用于指向 JLS 使用的 JDK,如果没有显式覆盖,也应该用于代码编译java.homeVS Code 设置中的设置(工作区然后用户设置)JDK_HOME变量JAVA_HOME变量java.configuration.runtimes在相应的settings.json(即工作区和/或用户)中设置:
"java.configuration.runtimes": [
{
"name": "JavaSE-1.8",
"path": "/path/to/jdk-8",
},
{
"name": "JavaSE-11",
"path": "/path/to/jdk-11",
},
{
"name": "JavaSE-14",
"path": "/path/to/jdk-14",
"default": true
},
{
"name": "JavaSE-15",
"path": "/path/to/jdk-15",
"default": true
},
]
Run Code Online (Sandbox Code Playgroud)
default示例只有一个。要编辑settings.json添加(或编辑)java.configuration.runtimes设置:
settings.json您正在尝试编辑(即用户或特定工作区)(显示 3 个环境的屏幕截图)java.configuration.runtimes在搜索框中输入“ ”settings.json通过单击窗口右上角附近的“打开设置(JSON)”按钮直接编辑文件(如上面的屏幕截图所示)settings.json并输入您的自定义java.configuration.runtimes代码段(如上所示),确保仅使用允许的“ name”(如上所述)并使用正确的路径(考虑是 Windows 还是 Linux 路径 - 后者适用于 WSL )settings.json编辑窗口pom.xml和maven.compiler.source,在出现提示时maven.compiler.target同步项目的 Java 类路径和配置(这也会更新您的 Eclipse '和)(如果它也存在)org.eclipse.jdt.core.prefsorg.eclipse.jdt.core.compiler.codegen.targetPlatformorg.eclipse.jdt.core.compiler.complianceorg.eclipse.jdt.core.compiler.source示例java.configuration.runtimes片段来自settings.json:
Windows(已安装 JDK 1.8 和 12)
"java.configuration.runtimes": [
{
"name": "JavaSE-1.8",
"path": "C:\\Program Files\\Java\\jdk1.8.0_261"
},
{
"name": "JavaSE-12",
"path": "C:\\Program Files\\Java\\jdk-12.0.1"
}
]
Run Code Online (Sandbox Code Playgroud)
WSL(远程)(已安装 JDK 1.8 和 11):
"java.configuration.runtimes": [
{
"name:": "JavaSE-1.11",
"path": "/usr/lib/jvm/java-11-openjdk-amd64"
},
{
"name": "JavaSE-1.8",
"path": "/usr/lib/jvm/java-8-openjdk-amd64"
}
]
Run Code Online (Sandbox Code Playgroud)
小智 5
就我而言,我已将 Maven 设置为 VSCode 中的 Java 构建环境。对于 maven,我发现 pom.xml 中的一个构建属性设置为 Java 1.8 版,该版本比我使用的要旧,即 1.11。一旦我更新了如下属性,警告就消失了。
<properties>
<java.version>1.11</java.version>
</properties>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9592 次 |
| 最近记录: |