2011-03-19 2 views

답변

6

배치 파일에서 프로그래밍 방식으로 결정하려면 windows\system32에 설치된 reg.exe 도구를 사용할 수 있습니다.

이 도구에 대한 귀찮은 점은 종료 코드 만 반환하는 방법이 없으므로 리디렉션을 통한 출력을 아무데도 표시하지 않아야한다는 것입니다. 또한 값이 존재하지 않으면 ERROR 메시지를 생성합니다.

@echo off 
rem 
rem DetectJvmInstalled.cmd 
rem 
reg.exe query "HKLM\Software\JavaSoft\Java Runtime Environment" /v "CurrentVersion" > nul 2> nul 
if errorlevel 1 goto NotInstalled 

rem Retrieve installed version number. 
rem The reg.exe output parsing found at http://www.robvanderwoude.com/ntregistry.php 
set JvmVersion= 
for /F "tokens=3* delims= " %%A IN ('reg.exe query "HKLM\Software\JavaSoft\Java Runtime Environment" /v "CurrentVersion"') do set JvmVersion=%%A 
rem if "%JvmVersion%" == "" goto NotInstalled 

:Installed 
echo JVM Version = %JvmVersion% 
exit /b 0 

:NotInstalled 
echo JVM Not installed. 
exit /b 1 

유의할 것들 다음 nul 장치로 두 리디렉션, 표준 출력에 대해 하나의 표준 오류 중 하나가 있습니다

  • .
  • 값이 존재하지 않을 때 ERROR... 메시지가 표시되지 않도록 검색은 값 파싱과 별도로 수행됩니다.
  • delims= 옵션 뒤에 공백 문자가 있습니다 (공백이 구분 기호이므로).
  • 배치 파일은 성공 (설치)되었거나 실패한 경우 (설치되지 않은 경우) 오류 수준/종료 코드 0을 반환합니다.

희망이 있습니다.

3

Java 코드에서 JVM이 설치되었는지 여부를 감지 할 수있는 방법이 없습니다. JVM이 존재하지 않으면 Java 코드를 실행할 수 없습니다. 따라서 컴파일 된 코드를 실행할 수 있으면 JVM이 설치됩니다.

+2

'return true'는 항상 올바른 결과를 나타낼 수 있습니다 .-) –

2

Windows에서 으로 설치할 수 있다고 생각하지 않습니다. 하드 드라이브 디렉토리에 JRE가 있는지 여부와이 환경 변수에 해당하는 bin 폴더를 통해이 JRE에 쉽게 액세스 할 수 있는지 여부를 확인하는 것이 더 적절합니다.

코드에서 java -version을 실행하고 출력을 수집하여이를 확인할 수 있습니다.

'java' is not recognized as an internal or external command, operable program or batch file.이라는 메시지가 표시되면 jre가 참조되지 않습니다.

+1

Microsoft Windows는 여전히 PATH 변수를 지원하지만 레지스트리를 선호합니다. 프로그램 파일 이름을 완전한 경로로 해석하십시오. 따라서 PATH 변수의 항목을 검사하는 것으로는 충분하지 않습니다. 제안한 것처럼 "java -version"을 실행하는 것이 가장 안정적이고 쉬운 솔루션 인 것으로 보입니다. –

5

난 당신이 전화에 관심이 아마 생각 :

System.getProperty("os.name"); 
System.getProperty("java.version"); 
+2

이것이 OP가 찾고 있던 것이 었는지는 확실하지 않지만 이것이 내가 찾고 있었던 것입니다. 감사. – NeilMonday

4

오라클의 deployJava.js 단지 자바의 특정 최소 버전이 사용자의 컴퓨터로 볼 수 있지만, 윈도우에있는 경우, 그들을 안내 확인할 수 없습니다 필요할 경우 다운로드하여 설치하십시오.

일반적으로 deployJava.js는 & appletsJava Web Start, 당신은 (종속되지)는 '벌거 벗은'JAR 파일에 링크 할 수 JWS 양식을 사용할 수 있습니다 사용하여 실행 된 응용 프로그램을위한 시작 버튼을 제공하는 데 사용됩니다.

관련 문제