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

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


当前回答

更多关于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): 使用java打开一个应用程序。 按CTRL + shift + esc

右键单击OpenJDK平台二进制文件。单击打开文件位置。 然后它会显示java/javaw.exe,然后转到显示文件夹的顶部,单击jdk,然后右复制路径,嘣。(不适用于使用捆绑jre路径/运行时的应用程序,因为它将显示捆绑运行时的路径)

#!/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下,您可以使用

C:>dir /b /s java.exe

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

在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

命令行:

在命令提示符中运行where java。

GUI:

在Windows 10上,你可以通过控制面板>程序> Java找到路径。在显示的面板中,您可以找到如下截图所示的路径。在Java控制面板中,转到“Java”选项卡,然后单击“查看和管理Java应用程序和applet的Java运行时版本和设置”描述下的“查看”按钮。

这应该适用于Windows 7和其他最新版本的Windows。