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

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


当前回答

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

其他回答

更多关于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命令提示符中,只需输入:

set java_home

或者,如果你不喜欢命令环境,你可以检查它:

开始菜单>计算机>系统属性>高级系统属性。然后打开高级选项卡>环境变量,在系统变量中尝试找到JAVA_HOME。

在Windows cmd中:

set "JAVA_HOME" 

Powershell一内衬:

$p='HKLM:\SOFTWARE\JavaSoft\Java Development Kit'; $v=(gp $p).CurrentVersion; (gp $p/$v).JavaHome

Java安装程序将几个文件放入%WinDir%\System32文件夹(Java .exe, javaws.exe和其他一些文件)。当您在命令行中键入java.exe或创建没有完整路径的进程时,如果% path %文件夹中缺少这些文件,Windows会将它们作为最后的手段运行。

您可以查找注册表中安装的所有Java版本。看看HKLM\SOFTWARE\JavaSoft\Java运行时环境和HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java运行时环境在64位Windows上的32位Java。

这就是java本身如何发现安装的不同版本。这就是为什么32位和64位版本可以共存,并且工作良好而没有干扰。