我需要知道JDK在我的机器上的位置。
在cmd中运行Java -version时,它显示的版本为'1.6.xx'。 为了找到这个SDK在我的机器上的位置,我尝试使用echo %JAVA_HOME%,但它只显示'JAVA_HOME'(因为在我的环境变量中没有'JAVA_PATH' var设置)。
我需要知道JDK在我的机器上的位置。
在cmd中运行Java -version时,它显示的版本为'1.6.xx'。 为了找到这个SDK在我的机器上的位置,我尝试使用echo %JAVA_HOME%,但它只显示'JAVA_HOME'(因为在我的环境变量中没有'JAVA_PATH' var设置)。
当前回答
下面的批处理脚本将打印出现有的默认JRE。通过将Java运行时环境替换为Java Development Kit,可以轻松地修改它以查找已安装的JDK版本。
@echo off
setlocal
::- Get the Java Version
set KEY="HKLM\SOFTWARE\JavaSoft\Java Runtime Environment"
set VALUE=CurrentVersion
reg query %KEY% /v %VALUE% 2>nul || (
echo JRE not installed
exit /b 1
)
set JRE_VERSION=
for /f "tokens=2,*" %%a in ('reg query %KEY% /v %VALUE% ^| findstr %VALUE%') do (
set JRE_VERSION=%%b
)
echo JRE VERSION: %JRE_VERSION%
::- Get the JavaHome
set KEY="HKLM\SOFTWARE\JavaSoft\Java Runtime Environment\%JRE_VERSION%"
set VALUE=JavaHome
reg query %KEY% /v %VALUE% 2>nul || (
echo JavaHome not installed
exit /b 1
)
set JAVAHOME=
for /f "tokens=2,*" %%a in ('reg query %KEY% /v %VALUE% ^| findstr %VALUE%') do (
set JAVAHOME=%%b
)
echo JavaHome: %JAVAHOME%
endlocal
其他回答
在Windows PowerShell中,您可以使用Get-Command功能查看Java安装在哪里:
Get-Command -All java
Or
gcm -All java
-All部分确保显示它在路径查找中出现的所有位置。下面是示例输出。
PS C:> gcm -All java
CommandType Name Version Source
----------- ---- ------- ------
Application java.exe 8.0.202.8 C:\Program Files (x86)\Common Files\Oracle\Java\jav...
Application java.exe 8.0.131... C:\ProgramData\Oracle\Java\javapath\java.exe
在Windows下,您可以使用
C:>dir /b /s java.exe
打印C:驱动器上每个“java.exe”的完整路径,而不管它们是否在path环境变量中。
Powershell一内衬:
$p='HKLM:\SOFTWARE\JavaSoft\Java Development Kit'; $v=(gp $p).CurrentVersion; (gp $p/$v).JavaHome
只需在命令行中执行set命令。然后你会看到你所设置的所有环境变量。
如果在Unix上,你可以简化它:
$ set | grep "JAVA_HOME"
Windows >开始> cmd > . cmd
C:> for %i in (javac.exe) do @echo. %~$PATH:i
如果您安装了JDK,则会显示Path, 例如:C:\Program Files\Java\ jdk1.6.0_30\bin\javac.exe