2011-11-21 7 views
3

누구든지 Windows 레지스트리 읽기 또는 Windows 레지스트리 동작을 사용하는 방법을 알고 있습니까? 내가 할 수있는 것은 실패 할 때입니다.레지스트리 동작을 사용하는 방법

예를 들어 HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit에서 CurrentVersion 키를 읽으려는 것입니다.이 키는 내가 알고 있고 읽었습니다. 레지스트리 루트를 HKEY_LOCAL_MACHINE으로 설정하고 키 이름을 SOFTWARE\JavaSoft\Java Development Kit으로 설정하고 값 이름을 CurrentVersion으로 설정했지만 여전히 실패합니다. 어떤 도움이라도 대단히 감사 할 것입니다.

감사합니다.

답변

1

대부분 32 비트 설치 프로그램을 실행하고 있지만 64 비트 레지스트리의 값을 찾고 있습니다.

32 비트 실행 파일의 소프트웨어 설정은 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node입니다. 레지스트리 동작은 항상 설치 관리자의 bitness에 해당하는 레지스트리보기에서 읽습니다. 64 비트 JDK 및 32 비트 JDK를 설치하지 않은 경우 레지스트리의 32 비트보기에서 원하는 레지스트리 값이 비어있게됩니다.

이 경우 실제로 문제가 있는지 확인하려면 미디어 마법사의 "32 비트 또는 64 비트"단계에서 "64 비트 실행 파일 생성"을 선택하면 예상대로 작동해야합니다. RegistryView.BIT64를 사용하여

Object value = WinRegistry.getValue(
    RegistryRoot.HKEY_LOCAL_MACHINE, 
    "SOFTWARE\\JavaSoft\\Java Development Kit", 
    "CurrentVersion", 
    RegistryView.BIT64 
); 
if (value != null) { 
    context.setVariable("javaCurrentVersion", value.toString()); 
} 

RegistryView.BIT32 32 비트 설치에서 64 비트보기에 액세스 할 수 있으며에서 32 비트보기 다음 API와

, 명시 적으로 레지스트리보기를 설정할 수 있습니다 64 비트 설치 프로그램.

+0

감사합니다. 그것이 문제였습니다. – user1058410