Windows 머신에 JDK가 설치되어 있는 장소를 확인하려면 어떻게 해야 합니까?
기계상의 JDK 위치를 알아야 합니다.
중Java -version
cmd에서는 버전이 '1.6.xx'로 표시됩니다.사용하던 컴퓨터에서 이 SDK의 위치를 찾으려면echo %JAVA_HOME%
JAVA_만됩니다.JAVA's java java 、 JAVA 。 ('JAVA_JAVA')가 없기 에)PATH' var는 내 환경변수로 설정된다.
Linux/Unix/Mac OS X를 사용하는 경우:
이것을 시험해 보세요.
$ which java
정확한 위치를 출력합니다.
다음에 ㄴ, ㄴ, ㄴ, ㄴ, ㄴ다를 할 수 있다.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
Windows 를 사용하고 있는 경우:
c:\> for %i in (java.exe) do @echo. %~$PATH:i
Windows > [ Start ]> [ cmd ]>
C:> for %i in (javac.exe) do @echo. %~$PATH:i
JDK 、 [ Path ] j j 、 [ Path ] j j 。
예를 들어 다음과 같습니다.C:\Program Files\Java\jdk1.6.0_30\bin\javac.exe
윈도우즈에서 명령 프롬프트에 표시됨
where javac
에서는, 는 「Windows 」, 「Windows 」입니다.C:\Program Files\Java\jdk1.6.0_14
(본명: ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」
Windows 10 에서는 [컨트롤 패널(Control Panel)]> [프로그램(Programs)]> [ Java ]순서로 이동하여 경로를 확인할 수 있습니다.표시된 패널에서 아래 스크린샷에 표시된 경로를 찾을 수 있습니다.Java 제어판에서 'Java' 탭으로 이동한 다음 'Java Runtime 버전 및 Java 애플리케이션 및 애플릿 설정 보기 및 관리' 설명 아래의 'View' 버튼을 클릭합니다.
이 기능은 Windows 7 및 기타 최신 버전의 Windows에서 작동합니다.
Java instra는 여러 파일을 %WinDir%\에 저장합니다.System32 폴더(java.exe, javaws).exe 및 기타).명령줄에 java.exe를 입력하거나 전체 경로 없이 프로세스를 생성하면 %PATH% 폴더에 없는 경우 마지막 수단으로 실행됩니다.
레지스트리에 설치된 모든 Java 버전을 검색할 수 있습니다.64비트 Windows의 32비트 Java용 HKLM\SOFTWARE\Java Runtime Environment 및 HKLM\SOFT\Wow6432Node\JavaSoft\Java Runtime Environment를 살펴봅니다.
이렇게 하면 Java 자체에서 설치된 여러 버전을 검색할 수 있습니다.그렇기 때문에 32비트 버전과 64비트 버전이 공존할 수 있고 간섭 없이 정상적으로 동작합니다.
Windows 플랫폼에서의 심플하고 간단한 기능:
여기서 java는
Windows 에서는, 다음과 같이 할 수 있습니다.
C:>dir /b /s java.exe
PATH 환경변수에 있는지 여부에 관계없이 C: 드라이브에 있는 모든 "java.exe"의 전체 경로를 인쇄합니다.
다음 배치 스크립트는 기존 기본 JRE를 출력합니다.Java Runtime Environment를 Java Development Kit로 대체하면 설치된 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
Windows 명령 프롬프트에서 다음과 같이 입력합니다.
set java_home
또는 명령 환경이 마음에 들지 않는 경우 다음 위치에서 확인할 수 있습니다.
[시작] 메뉴> [컴퓨터]> [시스템 속성]> [상세 시스템 속성]의 순서로 선택합니다.다음으로 [Advanced]탭 > [ Environment Variables ]를 열고 시스템 변수에서 JAVA_HOME 을 검색합니다.
파워셸 1 라이너:
$p='HKLM:\SOFTWARE\JavaSoft\Java Development Kit'; $v=(gp $p).CurrentVersion; (gp $p/$v).JavaHome
Windows에 대한 자세한 정보...변수 자바홈이 실행되는 바이너리와 항상 같은 위치는 아닙니다.
Denis The Threat가 말했듯이 설치 관리자는 Java 파일을 Program Files에 넣지만 java.exe도 System32에 넣습니다.경로에 관련된 Java가 없어도 Java - version은 계속 작동합니다.그러나 PeterMm의 프로그램이 실행되면 Program Files의 값을 java로 보고합니다.(Java가 설치되어 있음) home은 틀리지 않지만 실제 실행 중인 바이너리는 System32에 있습니다.
java.exe 바이너리의 위치를 추적하는 방법 중 하나로 PeterMm의 코드에 다음 행을 추가하여 프로그램을 장시간 실행합니다.
try{Thread.sleep(60000);}catch(Exception e) {}
컴파일하여 실행한 후 java.exe 이미지의 위치를 헌트합니다.예를 들어 Windows 7에서 태스크 매니저를 열고 java.exe 엔트리를 찾아 오른쪽 클릭하여 '열린 파일 위치'를 선택하면 Java 바이너리의 정확한 위치가 열립니다.이 경우 System32가 됩니다.
명령줄에서 이 프로그램 실행:
// File: Main.java
public class Main {
public static void main(String[] args) {
System.out.println(System.getProperty("java.home"));
}
}
$ javac Main.java
$ java Main
에서는 Windows PowerShell 을 할 수 있습니다.Get-Command
자바:
Get-Command -All java
또는
gcm -All java
-All
는 lookuppart 에 를 확인합니다.하다
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
%PATH% 변수를 확인해 보셨습니까?Windows 에서는, 이 기능을 사용해 실행 파일을 검색합니다.
하세요.set
명령어를 입력합니다.설정한 모든 환경변수가 표시됩니다.
UNIX에서는, 심플하게 할 수 있습니다.
$ set | grep "JAVA_HOME"
이것은 OS에 따라 다릅니다.UNIX의 경우:
which java
실행 파일의 경로가 표시됩니다.동등한 일반적으로 의 「」, 「」, 「」, 「」, 「」,bin
내PATH
:
echo %PATH%
bin, docs, include, jre, lib 등의 서브디어가 포함된 홈을 찾는 경우 Linux에 대한 답변은 모두 올바르지 않습니다.
Ubuntu for openjdk1.8.0의 경우, 다음과 같습니다./usr/lib/jvm/java-1.8.0-openjdk-amd64
그리고 당신은 그것을 사용하는 것을 선호할 수 있습니다.JAVA_HOME
JNI 소스 파일을 빌드하면 헤더를 찾을 수 있기 때문입니다.그것이 사실일 때which java
는 바이너리 패스를 제공합니다.이것은 진정한 JDK 홈이 아닙니다.
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
실행 중이라는 점에 주의해 주십시오.which 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
아마도 위의 방법이 효과가 있을 것이다.먹어봤지만 난 안 먹어봤어.이것은 다음과 같습니다.
터미널에서 다음을 수행합니다.
/usr/libexec/java_home
Windows cmd:
set "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 실행 파일을 찾는 방법을 설명하는 데 도움이 될 수 있습니다.
필요에 따라 64비트 및 32비트 레지스트리에서 레지스트리 키를 테스트하여 위의 munsingh의 답변을 개선했습니다.
::- Test for the registry location
SET VALUE=CurrentVersion
SET KEY_1="HKLM\SOFTWARE\JavaSoft\Java Development Kit"
SET KEY_2=HKLM\SOFTWARE\JavaSoft\JDK
SET REG_1=reg.exe
SET REG_2="C:\Windows\sysnative\reg.exe"
SET REG_3="C:\Windows\syswow64\reg.exe"
SET KEY=%KEY_1%
SET REG=%REG_1%
%REG% QUERY %KEY% /v %VALUE% 2>nul
IF %ERRORLEVEL% EQU 0 GOTO _set_value
SET KEY=%KEY_2%
SET REG=%REG_1%
%REG% QUERY %KEY% /v %VALUE% 2>nul
IF %ERRORLEVEL% EQU 0 GOTO _set_value
::- %REG_2% is for 64-bit installations, using "C:\Windows\sysnative"
SET KEY=%KEY_1%
SET REG=%REG_2%
%REG% QUERY %KEY% /v %VALUE% 2>nul
IF %ERRORLEVEL% EQU 0 GOTO _set_value
SET KEY=%KEY_2%
SET REG=%REG_2%
%REG% QUERY %KEY% /v %VALUE% 2>nul
IF %ERRORLEVEL% EQU 0 GOTO _set_value
::- %REG_3% is for 32-bit installations on a 64-bit system, using "C:\Windows\syswow64"
SET KEY=%KEY_1%
SET REG=%REG_3%
%REG% QUERY %KEY% /v %VALUE% 2>nul
IF %ERRORLEVEL% EQU 0 GOTO _set_value
SET KEY=%KEY_2%
SET REG=%REG_3%
%REG% QUERY %KEY% /v %VALUE% 2>nul
IF %ERRORLEVEL% EQU 0 GOTO _set_value
:_set_value
FOR /F "tokens=2,*" %%a IN ('%REG% QUERY %KEY% /v %VALUE%') DO (
SET JDK_VERSION=%%b
)
SET KEY=%KEY%\%JDK_VERSION%
SET VALUE=JavaHome
FOR /F "tokens=2,*" %%a IN ('%REG% QUERY %KEY% /v %VALUE%') DO (
SET JAVAHOME=%%b
)
ECHO "%JAVAHOME%"
::- SETX JAVA_HOME "%JAVAHOME%"
32/64비트 Windows용 스크립트.
@echo off
setlocal enabledelayedexpansion
::- Get the Java Version
set KEY="HKLM\SOFTWARE\JavaSoft\Java Runtime Environment"
set KEY64="HKLM\SOFTWARE\WOW6432Node\JavaSoft\Java Runtime Environment"
set VALUE=CurrentVersion
reg query %KEY% /v %VALUE% 2>nul || (
set KEY=!KEY64!
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 KEY64="HKLM\SOFTWARE\WOW6432Node\JavaSoft\Java Runtime Environment\%JRE_VERSION%"
set VALUE=JavaHome
reg query %KEY% /v %VALUE% 2>nul || (
set KEY=!KEY64!
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
간단한 방법(Windows):Java를 사용하여 응용 프로그램을 엽니다. Ctrl + Shift + esc 키를 누릅니다.
OpenJDK 플랫폼의 바이너리를 오른쪽 클릭합니다.열린 파일 위치를 클릭합니다.그러면 java/javaw가 표시됩니다.exe는 폴더가 표시된 맨 위로 이동하여 jdk를 클릭한 후 경로를 오른쪽 복사하고 Boom을 클릭합니다.(번들된 런타임에 대한 경로가 표시되므로 번들된 jre 경로/런타임을 사용하는 앱에 대해 작동합니다.)
언급URL : https://stackoverflow.com/questions/4681090/how-do-i-find-where-jdk-is-installed-on-my-windows-machine
'programing' 카테고리의 다른 글
JavaScript는 붙여넣기 이벤트에서 클립보드 데이터를 가져옵니다(크로스 브라우저). (0) | 2022.10.19 |
---|---|
Java I/O에서 "Stream"과 "Buffer"는 정확히 무엇을 의미합니까? (0) | 2022.10.19 |
메서드 매개 변수 이름을 가져오는 방법 (0) | 2022.10.02 |
MySQL의 여러 업데이트 (0) | 2022.10.02 |
MySQL에서 외부 키 제약 조건을 사용하는 이유 (0) | 2022.10.02 |