我需要知道JDK在我的计算机上的位置。
在命令提示符中运行java -version
,它会显示版本为“1.6.xx”。
为了找到此SDK在我的计算机上的位置,我尝试使用echo %JAVA_HOME%
,但它只显示“JAVA_HOME”(因为在我的环境变量中没有设置“JAVA_PATH”变量)。
我需要知道JDK在我的计算机上的位置。
在命令提示符中运行java -version
,它会显示版本为“1.6.xx”。
为了找到此SDK在我的计算机上的位置,我尝试使用echo %JAVA_HOME%
,但它只显示“JAVA_HOME”(因为在我的环境变量中没有设置“JAVA_PATH”变量)。
/usr/libexec/java_home
简单的方法(Windows): 使用Java打开应用程序。 按下ctrl + shift + esc
右键单击OpenJDK平台二进制文件。点击打开文件位置。 然后它会显示java/javaw.exe,然后转到顶部,显示文件夹并单击jdk,然后右键复制路径,完成。(不适用于使用捆绑jre路径/运行时的应用程序,因为它将显示路径到捆绑运行时)
#!/bin/bash
if [[ $(which ${JAVA_HOME}/bin/java) ]]; then
exe="${JAVA_HOME}/bin/java"
elif [[ $(which java) ]]; then
exe="java"
else
echo "Java environment is not detected."
exit 1
fi
${exe} -version
For windows:
@echo off
if "%JAVA_HOME%" == "" goto nojavahome
echo Using JAVA_HOME : %JAVA_HOME%
"%JAVA_HOME%/bin/java.exe" -version
goto exit
:nojavahome
echo The JAVA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program.
goto exit
:exit
这个链接可能有助于解释如何从Bash查找Java可执行文件: http://srcode.org/2014/05/07/detect-java-executable/
在Windows命令提示符中:
set "JAVA_HOME"
适用于32/64位Windows的脚本。
@echo off
setlocal enabledelayedexpansion
::- Get the Java Version
set KEY="HKLM\SOFTWARE\JavaSoft\Java Runtime Environment"
set KEY64="HKLM\SOFTWARE\WOW6432Node\JavaSoft\Java Runtime Environment"
set VALUE=CurrentVersion
reg query %KEY% /v %VALUE% 2>nul || (
set KEY=!KEY64!
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 KEY64="HKLM\SOFTWARE\WOW6432Node\JavaSoft\Java Runtime Environment\%JRE_VERSION%"
set VALUE=JavaHome
reg query %KEY% /v %VALUE% 2>nul || (
set KEY=!KEY64!
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