【发布时间】:2021-02-19 20:39:59
【问题描述】:
如果我打开命令提示符,请转到我的应用程序文件夹并键入以下内容:
java -version
我会得到以下结果:
java version "11.0.8" 2020-07-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.8+10-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.8+10-LTS, mixed mode)
但是,如果我转到 Spring Tool Suite > 右键单击项目资源管理器上的项目名称 > 在 > 终端中显示 > 并键入相同的命令(在与上述完全相同的文件夹中):
java -version
我得到了不同的结果:
openjdk version "14.0.2" 2020-07-14
OpenJDK Runtime Environment (build 14.0.2+12-46)
OpenJDK 64-Bit Server VM (build 14.0.2+12-46, mixed mode)
怎么可能?
在命令行中输入echo %PATH%时的结果:
C:\Program Files\Java\jdk-11.0.8;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\Oberthur Technologies\AWP\Dlls;C:\Program Files\Oberthur Technologies\AWP\Dlls;C:\Program Files\Git\cmd;C:\Program Files\Java\jdk-11.0.8\bin;C:\Program Files\apache-maven-3.6.3\bin;C:\Program Files\MySQL\MySQL Shell 8.0\bin\;C:\Users\Samsung\AppData\Local\Microsoft\WindowsApps;C:\Program Files\heroku\bin
在 STS 终端输入echo %PATH% 时的结果(与上面相同的文件夹):
C:/spring-tool-suite-4-4.8.0/contents/sts-4.8.0.RELEASE//plugins/org.eclipse.justj.openjdk.hotspot.jre.full.
win32.x86_64_14.0.2.v20200815-0932/jre/bin/server;C:/spring-tool-suite-4-4.8.0/contents/sts-4.8.0.RELEASE//p
lugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_14.0.2.v20200815-0932/jre/bin;C:\Program File
s\Java\jdk-11.0.8;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Ora
cle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerSh
ell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\Oberthur Technologies\AWP\Dlls;C:\Program File
s\Oberthur Technologies\AWP\Dlls;C:\Program Files\Git\cmd;C:\Program Files\Java\jdk-11.0.8\bin;C:\Program Fi
les\apache-maven-3.6.3\bin;C:\Program Files\MySQL\MySQL Shell 8.0\bin\;C:\Users\Samsung\AppData\Local\Micros
oft\WindowsApps;C:\Program Files\heroku\bin;C:\spring-tool-suite-4-4.8.0\contents\sts-4.8.0.RELEASE;
【问题讨论】:
-
命令提示符中的
PATH与STS 终端中的PATH不同。检查PATH是两者的区别。 -
两者的路径相同。该命令正在应用程序根文件夹上运行。
-
由于
java命令是通过搜索PATH找到的,如果PATH相同,他们会找到相同版本的Java。请注意,我不是在谈论当前文件夹的“路径”,而是在谈论名为PATH的环境变量。 -
我明白了。你说的“一样”是什么意思? PATH 变量不止一个?我只有一个。它被称为“路径”(小写)并且有几个条目。其中:C:\Program Files\Java\jdk-11.0.8; C:\Program Files\Common Files\Oracle\Java\javapath; C:\Program Files (x86)\Common Files\Oracle\Java\javapath; %JAVA_HOME%\bin。并且 JAVA_HOME 变量指向 C:\Program Files\Java\jdk-11.0.8。
-
每个进程都有自己的一组环境变量,因此每个进程可能有不同的
Path变量值。 STS 可能更改了Path,因此STS 终端中Path的值将不同于您在命令提示符中看到的值。好吧,如果您在 STS 终端中查看它。
标签: java spring-boot command-line spring-tool-suite