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

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


当前回答

只需在命令行中执行set命令。然后你会看到你所设置的所有环境变量。

如果在Unix上,你可以简化它:

$ set | grep "JAVA_HOME" 

其他回答

更多关于Windows…java变量。Home并不总是与运行的二进制文件位于同一位置。

正如Denis The Menace所说,安装程序将Java文件放到Program files中,同时将Java .exe放到System32中。没有Java相关的路径Java -version仍然可以工作。然而,当PeterMmm的程序运行时,它报告程序文件的值为java。home,这没有错(Java安装在那里),但实际运行的二进制文件位于System32。

查找java.exe二进制文件位置的一种方法是,在PeterMmm的代码中添加下面这行代码,以保持程序运行更长时间:

try{Thread.sleep(60000);}catch(Exception e) {}

编译并运行它,然后查找java.exe映像的位置。例如,在Windows 7中打开任务管理器,找到Java .exe条目,右键单击并选择“打开文件位置”,这将打开Java二进制文件的确切位置。在本例中,它是System32。

在windows中,默认值是:C:\Program Files\Java\ jdk1.6.0_14(其中数字可能不同,因为它们是版本)。

如果您正在寻找包含子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主页。

如果你使用的是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

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