我需要知道JDK在我的机器上的位置。

在cmd中运行Java -version时,它显示的版本为'1.6.xx'。 为了找到这个SDK在我的机器上的位置,我尝试使用echo %JAVA_HOME%,但它只显示'JAVA_HOME'(因为在我的环境变量中没有'JAVA_PATH' var设置)。


当前回答

您是否尝试查看您的%PATH%变量。这就是Windows用来查找任何可执行文件的方法。

其他回答

在Windows下,您可以使用

C:>dir /b /s java.exe

打印C:驱动器上每个“java.exe”的完整路径,而不管它们是否在path环境变量中。

在Windows平台上简单明了:

在java

也许上面的方法有用…我试了一些,但不是为了我自己。事情是这样的:

在终端中运行:

/usr/libexec/java_home
#!/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/

如果你使用的是Linux/Unix/Mac OS X:

试试这个:

$ which java

应该输出准确的位置。

之后,您可以自己设置JAVA_HOME环境变量。

在我的电脑(Mac OS X -雪豹):

$ which java
/usr/bin/java
$ ls -l /usr/bin/java
lrwxr-xr-x  1 root  wheel  74 Nov  7 07:59 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

如果你使用的是Windows:

c:\> for %i in (java.exe) do @echo.   %~$PATH:i