我需要知道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设置)。
当前回答
在macOS上运行:
cd /tmp && echo 'public class Main {public static void main(String[] args) {System.out.println(System.getProperty("java.home"));}}' > Main.java && javac Main.java && java Main
在我的机器上,这样打印出来:
/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home
注意,运行哪个java不会显示JDK的位置,因为java命令是JavaVM.framework的一部分,它包装了真正的JDK:
$ which java
/usr/bin/java
/private/tmp
$ ls -l /usr/bin/java
lrwxr-xr-x 1 root wheel 74 14 Nov 17:37 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
其他回答
您是否尝试查看您的%PATH%变量。这就是Windows用来查找任何可执行文件的方法。
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
在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
#!/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/
这是特定于操作系统的。在Unix:
which java
将显示可执行文件的路径。我不知道Windows中是否有类似的,但你通常在系统PATH中有JDK安装的bin文件夹:
echo %PATH%