首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在vscode集成终端中使用替代的maven和java版本

在vscode集成终端中使用替代的maven和java版本
EN

Stack Overflow用户
提问于 2021-02-09 19:43:48
回答 1查看 4.1K关注 0票数 1

我希望将vscode 集成终端中的maven版本和java版本设置为系统环境变量中指定的版本以外的版本。我正在使用vscode中的"Maven for Java“扩展。

我不想每次需要在主程序设置和辅助编程设置之间切换时更改系统环境变量/重新启动。

到目前为止,我已经在settings.json中指定了settings.json和其他一些内容。语言服务器识别此设置--一切正常。但是,在集成终端中运行java -versionmvn -version仍然显示了我的系统环境的java版本,而且maven也有问题:

代码语言:javascript
运行
复制
java -version
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)
   
mvn -version
Unrecognized option: --add-opens
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

我让mvn命令用一些设置组合运行一次,我不记得了。它使用的是新的java版本,但有趣的仍然是旧的mvn版本。

这是我的settings.json

代码语言:javascript
运行
复制
{
    "java.configuration.runtimes": [
        {
            "name": "JavaSE-11",
            "path": "C:\\Program Files\\Java\\jdk-11.0.7+10_hotspot",
            "default": true
        }
    ],
    "java.home": "C:\\Program Files\\Java\\jdk-11.0.7+10_hotspot",
    "terminal.integrated.shell.windows": "C:\\Program Files\\PowerShell\\7\\pwsh.exe",
    "terminal.integrated.fontFamily": "Cascadia Mono PL",
    "maven.executable.path": "C:\\maven-3.6.3\\bin\\mvn",
    "maven.terminal.useJavaHome": true,
    "maven.terminal.customEnv": [
        {
            "environmentVariable": "JAVA_HOME",
            "value": "C:\\Program Files\\Java\\jdk-11.0.7+10_hotspot"
        },
        {
            "environmentVariable": "M2_HOME",
            "value": "C:\\maven-3.6.3\\"
        },
        {
            "environmentVariable": "M2",
            "value": "C:\\maven-3.6.3\\bin"
        },
    ]
}

正如Maven扩展的文档所说(https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-maven)“来自maven.terminal.customEnv的值将优先于java.home和useJavaHome的规范”。然而,我试着在其中一种或另一种之间作出选择,但这并没有什么区别。

EN

回答 1

Stack Overflow用户

发布于 2021-02-16 02:57:36

当您在VS代码中的集成终端中运行java --version时,它将搜索环境变量中设置的JAVA_HOME,因此仍然是jdk1.8 1.8

但是,当您像helloworld.java一样运行文件时,终端中显示的执行脚本应该包括C:\Program Files\Java\jdk-11.0.7+10_hotspot\bin\java.exe,这意味着java扩展工具确实使用jdk11来构建和编译项目。

关于maven,您仍然需要将它添加到PATH中,然后mvn --version应该在终端中工作:

如果您设置了"maven.terminal.useJavaHome": true,,它将在环境变量(即jdk 1.8)中使用JAVA_HOME,您可以使用以下两种方法指定jdk版本:

  1. 创建maven项目时,可以手动选择jdk版本;
  2. 在Maven projects的pom.xml中,不要忘记重新构建该项目: 11 更多信息查看Apache编译器插件-设置的-source和-target
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66126013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档