Java 클래스 파일을 실행하려고 하는데 jni 오류가 발생했습니다.

Java 클래스 파일을 실행하려고 하는데 jni 오류가 발생했습니다.
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld ha
s been compiled by a more recent version of the Java Runtime (class file version
 56.0), this version of the Java Runtime only recognizes class file versions up
to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

JRE와 JDK를 여러 번 다시 설치했는데 도움이 되지 않았습니다.

답변1

기본적으로 사용하는 JRE는 클래스를 컴파일하는 데 사용된 JDK보다 오래되었습니다. 오류 메시지의 주요 정보는 다음과 같습니다.

... HelloWorld는 최신 버전의 Java Runtime(클래스 파일 버전 56.0)으로 컴파일되었습니다. 이 버전의 Java Runtime은 최대 52.0의 클래스 파일 버전만 인식합니다.

클래스 파일 버전에 따르면 사용 중인 JRE는 아마도 5년 전에 출시되었을 것입니다. 다음 중 하나를 수행해야 합니다.

  • JRE를 최신 버전으로 업데이트하세요(더 나은 옵션)

또는

  • 현재 JRE와 호환되는 클래스를 컴파일할 수 있도록 일치하는 이전 JDK를 설치하십시오.

참고: 최신 JRE 버전을 설치하고 java -version터미널에서 실행하는 경우 제공된 버전이 설치한 버전과 일치합니까? 그렇지 않은 경우 PATHJAVA_HOME환경 변수를 확인하십시오. 아마도 잘못된 위치를 가리키고 있을 것입니다.

관련 정보