시스템에 JRE (Windows)가 있는지 확인하기위한 쉬운 방탄 기술

StackOverflow https://stackoverflow.com/questions/812100

  •  03-07-2019
  •  | 
  •  

문제

내 초보자 질문 : P Wind 보장 시스템이 .jar 파일을 실행할 수 있습니다. 오류가 발생하지 않으면?

도움이 되었습니까?

해결책

JRE를 확인하는 유일한 보장 방법은 작은 Java 프로그램을 실행하는 것입니다.

또는 그조차도 - 아마도 시스템이 Java 표준 라이브러리의 일부만 설치할 수 있다고 생각합니다.이 경우 작은 테스트 병이 잘 작동하지만 전체 프로그램은 그렇지 않을 수 있습니다. 비록 왜 누군가가 그런 식으로 시스템을 설정하는 데 어려움을 겪게 될지 상상할 수는 없습니다.

다른 팁

명령 줄에서 Java가 설치되지 않았거나 현재 설치된 버전 정보가 있으면 오류를 반환하는 "Java -Version"을 호출 할 수 있어야합니다.

글쎄, 분명히 그렇지 않습니다. c : wind "Java"를 호출하면 오류가 발생하지 않지만 JRE가 설치되어 있음을 의미하지는 않습니다.

그 다음에 확인한 파일에 값을 쓰는 작은 클래스 파일을 실행하지 않겠습니까? 실패하면 작동하지 않습니다.

좋은 가치는 Java.version 시스템 속성의 가치 일 수 있습니다.

Windows에서는 HKLM Software Javasoft Java 플러그인에서 레지스트리를 확인할 수 있습니다. 거기에서 각 하위 키는 설치된 JRE입니다.

편집하다 다음은 설치된 JRE와 함께 문자열 배열을 반환하는 C# 코드입니다.

public string[] GetInstalledJavas() {
        // hold the registry subkeys that list the installed JRE's
        string[] jres = null;
        try {
            RegistryKey myKey = Registry.LocalMachine;
            myKey = myKey.OpenSubKey(@"SOFTWARE\JavaSoft\Java Plug-in"); // read-only
            jres = myKey.GetSubKeyNames();
        } catch (Exception myException) {
            Console.Writeline(myException.ToString());
        }
        return jres;
}

실제로 Windows 기계 확인에 대해서만 우려하고 JNLP의 핸들러 레지스트리를 확인하는 것이 비교적 최근의 JRE의 존재를 보장해야한다고 제안합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top