我需要知道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设置)。
当前回答
如果您正在寻找包含子dirs(如:bin、docs、include、jre、lib等)的home,那么这些答案对于Linux都不正确。
在Ubuntu for openjdk1.8.0上,这是在: /usr/lib/jvm/java-1.8.0-openjdk-amd64
并且您可能更喜欢将其用于JAVA_HOME,因为如果您构建JNI源文件,您将能够找到头文件。虽然哪个java会提供二进制路径是正确的,但它不是真正的JDK主页。
其他回答
只需在命令行中执行set命令。然后你会看到你所设置的所有环境变量。
如果在Unix上,你可以简化它:
$ set | grep "JAVA_HOME"
如果您正在寻找包含子dirs(如:bin、docs、include、jre、lib等)的home,那么这些答案对于Linux都不正确。
在Ubuntu for openjdk1.8.0上,这是在: /usr/lib/jvm/java-1.8.0-openjdk-amd64
并且您可能更喜欢将其用于JAVA_HOME,因为如果您构建JNI源文件,您将能够找到头文件。虽然哪个java会提供二进制路径是正确的,但它不是真正的JDK主页。
在Windows平台上简单明了:
在java
#!/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
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的命令提示符
在javac