如何在Windows机器上找到JDK的安装位置?

Ash*_*ine 288 java windows

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

Java -versioncmd中运行时,它将版本显示为"1.6.xx".要在我的机器上查找此SDK的位置,我尝试使用echo %JAVA_HOME%但它只显示'JAVA_HOME'(因为我的环境变量中没有设置'JAVA_PATH'var).

Pab*_*ruz 305

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

试试这个:

$ which java
Run Code Online (Sandbox Code Playgroud)

应该输出确切的位置.

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

在我的电脑(Mac OS X - Snow Leopard)中:

$ 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
Run Code Online (Sandbox Code Playgroud)

如果您使用的是Windows:

c:\> for %i in (java.exe) do @echo.   %~$PATH:i
Run Code Online (Sandbox Code Playgroud)

  • ``java`在Windows中运行(至少从Windows 7开始)但是如果你真的想要JDK而不是JRE,你需要在返回的目录中查找'bin/javac / (117认同)
  • 使用 Linux/Unix/Mac OS X **和** Windows 示例更新了答案。 (2认同)

gro*_*ter 109

Windows>开始> cmd>

C:> for %i in (javac.exe) do @echo.   %~$PATH:i
Run Code Online (Sandbox Code Playgroud)

如果安装了JDK,则会显示Path,
例如:C:\Program Files\Java\jdk1.6.0_30\bin\javac.exe

  • Windows(7+)=>其中javac.exe (15认同)
  • `只有当可执行文件在PATH中时,java`才有效.如果由于某种原因,javac不在路径中,它将不会返回任何结果,但它并不意味着没有安装JDK.因此,在一般情况下,@ grokster解决方案提出的文件搜索解决方案将保证结果(可能需要一段时间才能完成). (9认同)
  • 在Windows中,它是java (6认同)
  • “for-loop”的东西不起作用,但是,我在这里找到了它:C:\Program Files (x86)\Java\jdk1.6.0_24\bin> (2认同)

Nan*_*ett 89

在Windows的命令提示符下

where javac

  • 在Windows中,它是java (8认同)
  • 注意,这只适用于javac在PATH中的情况.如果不是,这个命令会说它找不到,但仍然可以安装JDK.如果在JDK安装后尚未更新PATH,请使用其他方法. (6认同)

Ron*_*ici 27

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


Den*_*ace 26

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

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

这就是java本身发现安装不同版本的方式.这就是为什么32位和64位版本可以共存并且工作正常而不会干扰的原因.


小智 21

在Windows平台上简单明了:

哪里有java

  • 它导致错误的Java位置C:\ WINDOWS\System32\java.exe.但实际的jdk安装在C:\ Java\jdk1.7.0 \(因为设置了JAVA_HOME) (8认同)

mun*_*ngh 16

下面的批处理脚本将打印出现有的默认JRE.通过使用Java Development Kit替换Java Runtime Environment,可以轻松修改它以查找安装的JDK版本.

@echo off

setlocal

::- Get the Java Version
set KEY="HKLM\SOFTWARE\JavaSoft\Java Runtime Environment"
set VALUE=CurrentVersion
reg query %KEY% /v %VALUE% 2>nul || (
    echo JRE not installed 
    exit /b 1
)
set JRE_VERSION=
for /f "tokens=2,*" %%a in ('reg query %KEY% /v %VALUE% ^| findstr %VALUE%') do (
    set JRE_VERSION=%%b
)

echo JRE VERSION: %JRE_VERSION%

::- Get the JavaHome
set KEY="HKLM\SOFTWARE\JavaSoft\Java Runtime Environment\%JRE_VERSION%"
set VALUE=JavaHome
reg query %KEY% /v %VALUE% 2>nul || (
    echo JavaHome not installed
    exit /b 1
)

set JAVAHOME=
for /f "tokens=2,*" %%a in ('reg query %KEY% /v %VALUE% ^| findstr %VALUE%') do (
    set JAVAHOME=%%b
)

echo JavaHome: %JAVAHOME%

endlocal
Run Code Online (Sandbox Code Playgroud)


And*_*Dev 12

在Windows命令提示符中,只需键入:

set java_home
Run Code Online (Sandbox Code Playgroud)

或者,如果您不喜欢命令环境,可以从以下位置进行检查:

开始菜单>计算机>系统属性>高级系统属性.然后打开Advanced选项卡> Environment Variables并在系统变量中尝试查找JAVA_HOME.

在此输入图像描述


sma*_*ert 12

在Windows 10上,您可以通过转到"控制面板">"Java"来查找路径.在显示的面板中,您可以找到如下面屏幕截图所示的路径.在Java控制面板,进入"Java"作为标签,然后点击说明下方的"查看"按钮"查看和管理Java应用程序和小程序的Java运行时的版本和设置."

这应该适用于Windows 7以及可能的其他最新版本的Windows.

在此输入图像描述

  • 我使用的是Windows 10,控制面板中没有java (2认同)

Moi*_*rns 10

更多关于Windows ...变量java.home并不总是与运行的二进制文件相同的位置.

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

寻找java.exe二进制文件位置的一种方法是,将以下行添加到PeterMmm的代码中以使程序运行一段时间:

try{Thread.sleep(60000);}catch(Exception e) {}
Run Code Online (Sandbox Code Playgroud)

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


小智 10

在Windows下,您可以使用

C:>dir /b /s java.exe
Run Code Online (Sandbox Code Playgroud)

打印C:驱动器上每个"java.exe"的完整路径,无论它们是否在您的PATH环境变量上.


Pet*_*Mmm 9

从命令行运行此程序:

// File: Main.java
public class Main {

    public static void main(String[] args) {
       System.out.println(System.getProperty("java.home"));
    }

}


$ javac Main.java
$ java Main
Run Code Online (Sandbox Code Playgroud)

  • 她不会先编译吗? (4认同)
  • 如果安装了JRE并且首先在路径上,它将找到它. (2认同)

maj*_*tor 9

Powershell one liner:

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

  • 对于 JDK 11,请使用 `$p='HKLM:\SOFTWARE\JavaSoft\JDK';$v=(gp $p).CurrentVersion; (gp $p/$v).JavaHome` (2认同)

sbl*_*ndy 6

您是否尝试过查看%PATH%变量.这就是Windows用来查找任何可执行文件的内容.


小智 5

只需set在命令行中执行该 命令即可.然后,您将看到已设置的所有环境变量.

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

$ set | grep "JAVA_HOME" 
Run Code Online (Sandbox Code Playgroud)


Sco*_*t H 5

在 Windows PowerShell 中,您可以使用该Get-Command函数查看 Java 的安装位置:

Get-Command -All java
Run Code Online (Sandbox Code Playgroud)

或者

gcm -All java
Run Code Online (Sandbox Code Playgroud)

-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
Run Code Online (Sandbox Code Playgroud)