source

레지스트리 키 '...'의 값은 '1.7'이지만 '1.6'은 필수입니다.Java 1.7이 설치되어 레지스트리가 이를 가리키고 있다.

factcode 2022. 11. 5. 08:57
반응형

레지스트리 키 '...'의 값은 '1.7'이지만 '1.6'은 필수입니다.Java 1.7이 설치되어 레지스트리가 이를 가리키고 있다.

개발팀은 최근 서버에 대한 완전한 접근이 불가능한 리모트 개발 환경으로 강제 이동했습니다.전환 전에는 Java 1.7 x 64에서 JRE 7과 함께 정상적으로 동작하는 JAR이 있었습니다.새로운 서버로 이행했을 때, JAR는 정상적으로 동작하고 있었습니다만, 서버 관리자 중 한 명이 Java를 이전 버전으로 「업데이트」해, 사용중의 Java를 언인스톨 했습니다.이유는 묻지 마, 나도 몰라.Java 1.7을 다시 설치하고 1.6을 JRE와 함께 제거했습니다.

런타임에 다음 문제가 발생하며 빌드 오류는 없습니다.

Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion'
has value '1.7', but '1.6' is required.
Error: could not find java.dll
Error: could not find Java SE Runtime Environment.

노트북에서도 같은 JAR을 문제없이 실행하고 있습니다.서버와 노트북 모두 각각 %HOME% 변수와 시스템 PATH에 JDK 1.7과 JRE 7이 있습니다.JRE 6을 재설치하여 나중에 시스템 환경 PATH 변수에 배치하여 동일한 결과를 얻었습니다.

레지스트리를 1.6으로 다시 변경했습니다.검색 결과, 복수의 Javas가 인스톨 되어 있는 것이 원인인 것 같습니다(원래의 문제로 돌아옵니다).

Exception in thread "main" java.lang.UnsupportedClassVersionError: ... :
Unsupported major.minor version 51.0

저는 여러 포럼을 살펴보았지만, 제 문제는 전혀 없는 것 같기 때문에 여러분 모두가 가지고 계신 통찰에 감사드립니다.또, 사용하고 있는 다른 서버에서도 이 문제가 발생하고 있습니다.감사합니다!

업데이트: JAR을 1.6 또는 1.7로 다시 컴파일하여 JDK와 일치시킬 수 없습니다.또한, 왜 새로운 버전의 Java가 오래된 컴파일 버전을 망가뜨릴까요?

Java ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」JRE 7 Java 6 VM 。에 이 할 수 .java ★★★★★★★★★★★★★★★★★」java -version설정이 잘못된 환경에서 사용됩니다.JAR의 코드가 Windows 레지스트리에서 검색되고 있는 경우를 제외하고, JAR은 문제가 되지 않습니다.

java.exe,javaw.exe ★★★★★★★★★★★★★★★★★」javaws.exe 6 の 6 from서Windows/System32폴더(어쩌다 거기에 있게 되었는지 알 수 없습니다). 및 는 "" "JRE" "PATH" 안에 PATH에 .C:\Java\jdk_1.7.0\bin

Java 7을 이미 실행하고 있는 시스템에 Java 8(jdk & jre)을 설치할 때 동일한 오류가 발생하였습니다.

오류: 레지스트리 키 'Soft\JavaSoft\Java Runtime

Environment'\CurrentVersion'의 값은 '1.8'이지만 '1.7'은 필수입니다.

오류: java.dll을 찾을 수 없습니다. 오류: Java SE 런타임 환경을 찾을 수 없습니다.

환경은 올바르게 설정되어 있습니다만(Path & java_home이 올바르게 정의되어 있습니다), 문제는 8개 이전 Java 설치 프로그램의 동작 방식에서 발생합니다.즉, 3개의 실행 파일(java.exe, javaw)을 복사하는 데 사용되었던 것입니다.exe 및 javaws.exe)를 Windows 시스템디렉토리에 추가합니다.8 이전의 새로운 인스톨에 의해서 덮어쓰기 되지 않는 한, 이러한 파일은 유지됩니다.

그러나 Java 8 instra는 새로운 디렉토리 C:\ProgramData\Oracle\Java\javapath에 실제 JRE 8 위치를 가리키는 심볼릭링크를 만듭니다.

즉, 실제로는 오래된7개의 ex를 실행하지만 새로운8개의 DLL을 사용합니다.

따라서 위와 같이 3개의 Java ex를 Windows 시스템디렉토리에서 삭제하기만 하면 됩니다.

64비트 Windows 상에서 32비트 Java 를 실행하고 있는 경우는 Windows\Sys 입니다.WOW64(Windows 이외)\시스템32.

Windows/system32에서 Java 파일을 삭제하고 PATH 변수에서 c:\ProgramData\Oracle\Java\javapath를 삭제했습니다.이는 Java 1.8 파일에 대한 심볼링크가 3개 있었기 때문입니다.

%J에 JDK 1.7이 있었습니다.AVA_HOME% 변수 및 path의 java1.7/bin.

PS1: Java 1.7과 Java 1.8 사이에서 문제가 발생했습니다.

PS2: 나는 충분한 포인트가 없기 때문에 이것을 빅터의 대답에 코멘트로 추가할 수 없다.

[시작(START)]메뉴에 [regedit]를 입력하여 레지스트리 에디터를 엽니다.

좌측 레지스트리 탐색기/트리 메뉴의 "HKEY_LOCAL_MACHINE"으로 이동합니다.

"HKEY_LOCAL_MACHINE" 레지스트리에서 "SOFTWARE"를 클릭합니다.

「SOFTWARE」레지스트리내의 「JavaSoft」를 클릭합니다.

설치된 Java의 다른 버전을 볼 수 있는 "JavaSoft" 레지스트리 목록에서 "Java Runtime Environment"를 클릭하십시오.

[ Java Runtime Environment ](자바 런타임 환경)을 클릭하면 오른쪽에 4-5개의 행이 표시됩니다.[CurrentVersion](현재 버전)을 선택하고 오른쪽 클릭(수정 옵션 선택)버전을 "1.7"로 변경하십시오.

이제 마법은 완성되었다

아직 이 스레드를 따르고 있는 사람이 있는지 모르겠습니다만, 얼마 전에 ActiveMQ 5.10을 Windows 서비스로 기동하려고 했을 때, 이 문제가 발생했습니다.

JAVA가 없었어요.HOME 패스 세트Java 6과 Java 7을 설치했지만 기본 버전은 v7이었습니다(명령 창을 열고 "java - version"을 입력한 경우).

여기서 힌트는 "Java - version"이 "Java HotSpot(TM) 64비트 서버 VM(빌드 23.1-b03, 혼합 모드)"을 반환했지만 Win32 서비스를 설치했습니다.

64비트 머신에서 Win32 래퍼를 사용하면 다른 버전의 Java를 사용하기로 결정하게 됩니다.

그래서 32비트 버전의 래퍼를 제거하고 64비트 버전을 설치하는 것이 수정되었습니다.내 기계에 대한 혐오감; 그냥 습관일 뿐인 것 같아.하지만 운 좋게도 나는 결국 문제를 해결했다.

Windows 7의 경우

paradox는 java.exe와 javaw로 되어 있습니다.system32 폴더에 exe를 입력합니다.폴더를 열었을 때 볼 수 없었지만 시작 메뉴의 검색을 사용하면 해당 파일에 대한 링크를 얻을 수 있습니다.다음 검색에서는 JAVA_의 파일에 대한 링크가 제공되었습니다.집입니다

매직)

올바른 디렉토리로 변경java.exe즉, 필요한 JDK 버전으로 이동합니다.java.exe

cd C:/Program Files/Java/jdk1.7.0_25/bin

를 실행합니다.java.exe이 디렉토리에서 레지스트리와 $PATH 설정보다 우선합니다.

java -jar C:/installed/selenium-server-standalone-2.53.0.jar 

Java 1.8을 제거함으로써 이 문제를 해결했습니다.

이 항아리는 다음과 같이 컴파일되었다.1.6준거.그렇기 때문에 이 에러가 발생합니다.두 가지 해상도:
1) Java 1.6 사용

아니면

2) 사용자 환경에 적합하도록 병을 다시 컴파일합니다.1.7

regedit을 사용하여 Java 7에 대응하는 엔트리를 삭제합니다.그건 작동할 것이다.

언급URL : https://stackoverflow.com/questions/15277496/registry-key-has-value-1-7-but-1-6-is-required-java-1-7-is-installed

반응형