[java] 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"


답변

JAVA_HOME 및 경로에 jdk8 이상 버전을 추가하십시오.

JAVA_HOME 추가 C : \ ProgramFiles \ Java \ jdk1.8.0_201

경로 =>

% MAVEN_HOME % \ bin 추가

마지막으로 PC를 다시 시작하십시오.