IT TIP

Java 6 지원되지 않는 major.minor 버전 51.0

itqueen 2020. 11. 1. 19:06
반응형

Java 6 지원되지 않는 major.minor 버전 51.0


최근에 Java 8을 제거하여 Java 8을 사용하는 것보다 더 많은 사람들이 내 코드 / 창작물을 사용할 수 있도록 Java 6을 사용 mvn - version했습니다.

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:401)
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:254)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
    at org.codehaus.plexus.classworlds.launcher.Launcher.getMainClass(Launcher.java:144)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:266)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

내가 할 때 java -version:

java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

Java에서는 모든 것이 괜찮아 보이지만 실행 가능한 JAR을 실행하려고 할 때도 발생합니다. java -jar (jar 이름)을 수동으로 수행하여 문제를 해결했습니다.


maven 웹 사이트 에 따르면 Java 6을 지원하는 마지막 버전은 3.2.5이고 3.3 이상은 Java 7을 사용합니다. 제 직감은 Maven 3.3 이상을 사용하고 있으며 Java 7로 업그레이드하고 적절한 소스를 설정해야한다는 것입니다. / target 속성) 또는 다운 그레이드 maven.


이 버전 번호 (51.0)는 Java 7 용으로 컴파일 된 클래스를 실행하려고 함을 나타냅니다. Java 6 용으로 다시 컴파일해야합니다.

그러나 일부 기능은 매우 오래되어 Oracle에서 더 이상 (공개적으로) 지원하지 않는 Java 6과 더 이상 호환되지 않을 수 있습니다.


나도 비슷한 문제에 직면했습니다. Windows의 환경 변수에 JAVA_HOME을 설정하여이 문제를 해결할 수 있습니다. 이 경우 배치 파일에서 JAVA_HOME 설정이 작동하지 않습니다.


문제는 JDK 버전을 제대로 설정하지 않았기 때문입니다. 51 번 메이저에는 jdk 7을 사용해야합니다. 다음과 같이 :

JAVA_HOME = / usr / java / jdk1.7.0_79


나는 같은 문제에 부딪쳤다. jdk 1.8과 maven 3.3.9를 사용합니다. JAVA_HOME을 내 보내면이 오류가 표시되지 않습니다. export JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.8.0_121.jdk / Contents / Home /


동일한 문제에 직면하고 Ubuntu Machine (16.04)에 업데이트 된 Java 버전으로 JAVA_HOME 변수를 추가하여 해결했습니다. "Apache Maven 3.3.9"를 사용하는 경우 JAVA_HOME을 java7 이상으로 업그레이드해야합니다.

수행 단계

1-sudo vim / etc / environment

2-JAVA_HOME = JAVA 설치 디렉터리 (MyCase- / opt / dev / jdk1.7.0_45 /)

3 실행 echo $ JAVA_HOME은 JAVA_HOME 설정 값을 제공합니다.

4- 이제 mvn -version은 원하는 출력을 제공합니다.

Apache Maven 3.3.9

Maven home: /usr/share/maven

Java version: 1.7.0_45, vendor: Oracle Corporation

Java home: /opt/dev/jdk1.7.0_45/jre

Default locale: en_US, platform encoding: UTF-8

OS name: "linux", version: "4.4.0-36-generic", arch: "amd64", family: "unix"

참고 URL : https://stackoverflow.com/questions/31394456/java-6-unsupported-major-minor-version-51-0

반응형