Java 6 Не підтримується major.minor версія 51.0


78

Нещодавно я видалив Java 8, щоб використовувати Java 6, оскільки я хочу, щоб мій код / ​​творіння використовувались більшою кількістю людей, ніж просто ті, що на Java 8. Коли я 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)


1
яку версію maven ви використовуєте?
Джон Амент

це JAVA_HOME / bin / java -version також друкує версію Java "1.6.0_45"?
Бактерії

Просто використовуйте java 8 і скомпілюйте із сумісністю 1.6

Java 6 дуже стара і деякий час не підтримується. Я б радив взагалі не використовувати його. Якщо ви хочете підвищити сумісність, Java 7 - це шлях.
Борис Павук

Відповіді:


104

Згідно з веб-сайтом maven , остання версія, яка підтримує Java 6, - це 3.2.5, а 3.3 і новіші версії використовують Java 7. На мою думку, ви використовуєте Maven 3.3 або новішу версію і повинні або оновити до Java 7 (і встановити належне джерело / target attributes у вашому pom) або знизити maven.


1
Це була саме моя проблема. Нещодавно я встановив версію mars 2 eclipse на 64 біти, і нова інсталяція використовувала її вбудовану версію maven замість моєї. Я спробував два шляхи: перший - змінити версію проекту JRE на 1.8, а другий - дозволити версію 1.6 JRE та змінити версію maven із вбудованої на локальну інсталяцію, і обидва варіанти спрацювали
Facepalmed

Ми використовуємо JDE 1.8 і бачимо саме цю проблему.
DrLou

12

Цей номер версії (51.0) означає, що ви намагаєтеся запустити класи, скомпільовані для Java 7. Вам потрібно буде перекомпілювати їх для Java 6.

Однак зауважте, що деякі функції можуть перестати бути сумісними з Java 6, яка є дуже старою і більше не підтримується (публічно) Oracle.


6
Ви смішні ... більшість урядів досі використовують java 6, насправді вони ледве щойно потрапили з java 4 ... пішли в протоку з 4 до 6! (а ваш коментар з минулого року! :)
VeenarM

5

я також стикався з подібною проблемою. Я міг вирішити це, встановивши JAVA_HOME у змінній середовища у вікнах. Налаштування JAVA_HOME у командному файлі в цьому випадку не працює.


2

Проблема в тому, що ви неправильно встановили версію JDK. Вам слід використовувати jdk 7 для основного числа 51. Ось так:

JAVA_HOME = / usr / java / jdk1.7.0_79


2

Я зіткнувся з тією ж проблемою. Я використовую jdk 1.8 та maven 3.3.9 Після експорту JAVA_HOME, я не побачив цієї помилки. експортувати JAVA_HOME = / Бібліотека / Java / JavaVirtualMachines / jdk1.8.0_121.jdk / Зміст / Головна /


У мене однаковий JRE та mvn, але це не спрацювало, отримала однакову помилку
user2568374

0

Я стикаюся з тією ж проблемою, яку вирішив, додавши змінну JAVA_HOME із оновленою версією Java на мою машину Ubuntu (16.04). якщо ви використовуєте "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"

0

додати jdk8 або новішу версію на JAVA_HOME та шлях.

додати JAVA_HOME додати C: \ ProgramFiles \ Java \ jdk1.8.0_201

Для Шляху =>

додати% MAVEN_HOME% \ bin

і нарешті перезавантажте ПК.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.