Almost-Native

자바 jar 실행 에러 : A JNI error has occurred, sun.launcher.LauncherHelper.checkAndLoadMain 본문

Java 프로그램 개발, IT

자바 jar 실행 에러 : A JNI error has occurred, sun.launcher.LauncherHelper.checkAndLoadMain

2022. 7. 10. 13:42

jar 파일을 실행하려고 할때 아래와 같이 JNI error has occurred 메시지가 나왔습니다.

이런 에러가 날때 유심히 봐야 하는게 중간 어딘가에 단서가 될 실마리 문구가 들어 있습니다.

무슨 클래스가 없다던가 (ClassNotFoundException) ...

 

$ java -jar XXX.jar
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: xxx/XXX has been compiled by a more 
recent version of the Java Runtime (class file version 53.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(ClassLoader.java:756)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:601)
 

 

저의 경우는 3번째 줄에 has been compiled by a more recent version of the Java Runtime ... 이라는 문구가 있습니다.

jar 파일 만들때 사용한 java 버전이 지금 실행하려고 하는 환경에 있는 java 버전보다 더 최신이라는 얘기입니다.

 

현재 실행환경에 있는 JDK 나 JRE 를 최신버전으로 올리면 해결됩니다.

 

또는 jar 파일을 다시 만들 수 있다면, jar 파일 만들때 JDK 버전을 낮은 버전을 사용하면 됩니다.

 

 

넷빈즈(NetBeans) IDE 환경에서는 프로젝트에서 Libraries 의 속성창에서 사용하는 Java JDK 를 선택할 수 있습니다.

프로젝트를 처음 만들면 디폴트로 최신버전으로 세팅되는데, 이것을 낮은 버전으로 바꿔주면 됩니다.

 

이렇게 바꿔주고 나서는 [Run] - [Clean and Build Project] 메뉴를 눌러서 새롭게 빌드해줘야 합니다.

 

Comments