为什么我不能从 Visual Studio 代码终端 运行 命令如 'java'?

Why can't I run commands like 'java' from the Visual Studio Code terminal?

问题

我正在使用 Visual Studio Code 的终端(在 Windows 11 设备上)并且 不能 运行 命令,如 javaflutter 等,无论是 VS Code 的 Powershell 终端还是 VS Code 的命令提示符终端。

当我尝试通过在 VS Code Powershell 终端中键入 java 运行 java 时,它显示:

PS C:\users\user> java
java : The term 'java' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ java
+ ~~~~
    + CategoryInfo          : ObjectNotFound: (java:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

当我尝试通过在 VS 代码命令提示符终端中键入 java 运行 java 时,它显示:

C:\users\user> java
'java' is not recognized as an internal or external command,
operable program or batch file.

我可以 运行 javaflutter 从常规 Windows 命令提示符(它们的 bin 文件夹在 Path环境变量)。

如何让这些命令在 VS Code 终端中 运行?

我已经尝试卸载并重新安装 VS Code,以为我可以然后 运行 命令,但我遇到了同样的问题。

我已经能够使用 window 右上角的“运行 java”按钮 运行 一个 java 程序.但是,我希望能够 运行 java 通过在 VS Code 终端中输入命令 ,类似于命令提示符中的 运行ning 命令.

我已经有了“Java 扩展的扩展包”和 VS Code 的“Dart”扩展。


解决方案

感谢

我的 User/settings.json 包含:

    "terminal.integrated.env.windows": {
        "PATH": "C:\ghcup\ghc\8.10.7\bin"
    },

我删了"PATH": "C:\ghcup\ghc\8.10.7\bin" 来自 User/settings.json.

    "terminal.integrated.env.windows": {
        
    },

现在我可以从 VS Code 终端 运行 命令,例如 javaflutter 等。

我想你 运行宁 java 使用直接 运行 按钮确实使用 java "运行 java" 按钮在旁边检查它是否正常工作。

  1. 在 VS CODE 中安装来自市场的必要扩展。 (即 Java 和 Dart,如果你还没有。

  2. 搜索环境变量并按照我在图片中所做的操作进行操作。您只需在环境变量中添加 bin 文件夹 link,就像我添加脚本文件夹 link 以全局启用 python 命令一样。

  3. 对于 java 如果您希望进行应用程序开发,您可能最有可能需要 JRE 或类似的东西,并且您很可能还需要安装 Android studio即使你不想使用它。

您是否在 settings.json 文件中配置了 terminal.integrated.env.xxx?比如这样:

"terminal.integrated.env.windows": { “小路”: ”” }

请检查您的配置文件 UserWorkspace

更新:

如果你想修改system environment variablespath,但你仍然想retain你电脑上的system environment variable。您可以使用 ${env:Path} 在您的计算机上获取旧值。像这样:

  "terminal.integrated.env.windows": {
    "Path": "some new paths;${env:Path}"
  },