Неподдерживаемая версия major.minor 52.0
Фотографий:
Командная строка, показывающая версии
Изображение ошибки
Hello.java
import java.applet.Applet;
import java.awt.*;
public class Hello extends Applet {
// Java applet to draw "Hello World"
public void paint (Graphics page) {
page.drawString ("Hello World!", 50, 50);
}
}
hello.html
<HTML>
<HEAD>
<TITLE>HelloWorld Applet</TITLE>
</HEAD>
<BODY>
<APPLET CODE="Hello.class" WIDTH=300 HEIGHT=150>
</APPLET>
</BODY>
</HTML>
ошибка
Hello : Unsupported major.minor version 52.0
В чем может быть проблема?
26 ответов
Проблема из-за несоответствия версии Java. Ссылаясь на Wikipedia Java Class Reference:
- Java SE 10 = 54
- Java SE 9 = 53
- Java SE 8 = 52
- Java SE 7 = 51
- Java SE 6.0 = 50
- Java SE 5.0 = 49
- JDK 1,4 = 48
- JDK 1,3 = 47
- JDK 1,2 = 46
- JDK 1.1 = 45
Это назначенные основные номера. Ошибка, связанная с неподдерживаемой версией major.minor, связана с тем, что во время компиляции вы используете более высокий JDK и более низкий JDK во время выполнения.
Таким образом, ошибка "major.minor version 52.0", возможно, связана с тем, что jar был скомпилирован в JDK 1.8, но вы пытаетесь запустить его в среде JDK 1.7. Указанный номер - это необходимый номер, а не номер, который вы используете. Чтобы решить эту проблему, всегда лучше, чтобы JDK и JRE указывали на одну и ту же версию.
В IntelliJ IDEA,
- Перейдите в Настройки Maven → Maven → Импорт. Установите JDK для импортера на 1,8.
- Перейдите в Настройки Maven → Maven → Бегунок. Установите JRE на 1,8.
- Зайдите в меню Файл * → Структура проекта → SDK. Убедитесь, что домашний путь JDK установлен на 1,8.
Перезапустите IntelliJ IDEA.
Другой подход, который может помочь, - указать IntelliJ IDEA, с какой версии JDK начинать.
Перейдите по адресу: / Applications / IntelliJ \ IDEA \ 15 \ CE.app/Contents/Info.plist и замените версию JVM на:
<key>JVMVersion</key>
<string>1.8*</string>
Разумный способ решить эту проблему - это компилировать с использованием новейшего SDK и использовать параметры кросс-компиляции при компиляции. Для правильного использования параметров требуется rt.jar
JRE (не JDK) целевой версии.
Учитывая природу этого апплета, похоже, что он может быть скомпилирован для использования с Java 1.1.
Вам нужно будет изменить уровень соответствия компилятора до 1.7 в вашей IDE.
Это можно сделать в настройках параметров вашей IDE. Например, в Eclipse перейдите в меню Windows → " Настройки", выберите "Java" и разверните его. Затем выберите Compiler и измените уровень соответствия на 1.7. Я уверен, что это будет работать оттуда.
Вы должны запустить и скомпилировать ваше приложение с той же версией Java.
Если вы используете Eclipse, вы должны сделать 2 вещи:
В Eclipse нажмите "Окно> Настройки", и в появившемся окне слева под "Java" нажмите "Установленные JRE", нажмите "Добавить..." и перейдите к папке, содержащей JDK.
Щелкните правой кнопкой мыши по своему проекту и выберите "Свойства", в появившемся окне слева выберите "Компилятор Java" и снимите флажок "Использовать соответствие из среды выполнения на пути сборки Java", это позволит вам выбрать в списке "Уровень компиляции компилятора" та же версия, что и в предыдущем шаге.
Вам необходимо обновить версию Java до Java 8.
Загрузите последний архив Java
Загрузите последнюю версию Java SE Development Kit 8 со своей официальной страницы загрузки или используйте следующие команды для загрузки из оболочки.
Для 64 бит
# cd /opt/
# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u51-b16/jdk-8u51-linux-x64.tar.gz"
# tar xzf jdk-8u51-linux-x64.tar.gz
Для 32 бит
# cd /opt/
# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u51-b16/jdk-8u51-linux-i586.tar.gz"
# tar xzf jdk-8u51-linux-i586.tar.gz
Примечание. Если приведенная выше команда wget не работает для вас, посмотрите этот пример видео, чтобы загрузить исходный архив Java с помощью терминала.
Установите Java с альтернативами
После распаковки файла архива используйте команду альтернатив для его установки. Команда альтернатив доступна в пакете chkconfig.
# cd /opt/jdk1.8.0_51/
# alternatives --install /usr/bin/java java /opt/jdk1.8.0_51/bin/java 2
# alternatives --config java
На данный момент Java 8 была успешно установлена в вашей системе. Мы также рекомендуем настроить путь команд javac и jar, используя альтернативы:
# alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_51/bin/jar 2
# alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_51/bin/javac 2
# alternatives --set jar /opt/jdk1.8.0_51/bin/jar
# alternatives --set javac /opt/jdk1.8.0_51/bin/javac
Проверьте установленную версию Java
Проверьте установленную версию Java с помощью следующей команды.
root@tecadmin ~# java -version
java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)
Конфигурирование переменных среды
Большинство Java-приложений для работы используют переменные среды. Установите переменные среды Java с помощью следующих команд:
Настройте переменную JAVA_HOME
# export JAVA_HOME=/opt/jdk1.8.0_51
Setup JRE_HOME Variable
# export JRE_HOME=$JAVA_HOME/jre
Setup PATH Variable
# export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
Обратите внимание, что изменение переменной PATH ставит сначала новые папки Java bin, чтобы они переопределяли любые существующие java / bin в пути. Немного неаккуратно оставить две папки java / bin на вашем пути, поэтому вам следует посоветовать очистить их как отдельную задачу.
Кроме того, поместите все вышеперечисленные переменные среды в /etc/environment
файл для автоматической загрузки при загрузке системы.
У меня была такая же проблема... конфликт версий JDK и плагина.
Я скомпилировал, используя 1.8... последний, и это сообщение начало появляться. Поэтому я искал JRE 7 ( http://www.oracle.com/technetwork/java/javase/downloads/server-jre7-downloads-1931105.html)... и установил его... снова.. Теперь 1.8 и 1.7 на одном компьютере.
Использование NetBeans, компиляция и нацеливание на версию 1.7 устранили мою проблему.
Если у вас есть проблема в Android Studio и вы установили Android N, измените версию рендеринга Android на более старую, и проблема исчезнет.
Если вы используете IDE NetBeans, щелкните правой кнопкой мыши по проекту, выберите " Свойства" и перейдите к источникам, и вы можете изменить исходный / двоичный формат на более низкую версию JDK.
Неподдерживаемая версия major.minor 52.0 возникает, когда вы пытаетесь запустить класс, скомпилированный с использованием компилятора Java 1.8, в более низкую версию JRE, например, JRE 1.7 или JRE 1.6. Самый простой способ исправить эту ошибку - установить последнюю версию Java, т.е. Java 8, и запустить вашу программу.
Подробнее: http://javarevisited.blogspot.com/2015/05/fixing-unsupported-majorminor-version.html
Это происходит, когда вы компилируете свои проекты на higher version
Java(скажем, JDK 1,8), а затем запустить его на lower version
(скажем, JDK 1,7).
Если у вас есть библиотека JRE-1.7 в пути вашего проекта, то
1. Щелкните правой кнопкой мыши на проекте
2. Перейти к свойствам
3.Выберите аспекты проекта
4. Найдите Java в строках, а затем выберите версию (скажем, 1.7), если используете JRE-1.7.
5.Нажмите Применить и запустите свой проект.
Я решил свою проблему, удалив старые версии JRE и установив JRE 8.
Я мог бы решить ту же проблему, используя приведенное ниже решение.
В моем проекте я добавил файл JAR, созданный в Java 8. И мой проект ссылался на JRE 7. Когда я изменил проект JRE на 8, моя проблема была решена.
шаги:
В Eclipse щелкните правой кнопкой мыши имя проекта в проводнике проекта → Путь сборки → Библиотеки → нажмите на версию JRE → нажмите " Правка" → " Установленная JRE" → "Добавить" → ВМ Standerd → выберите домашний путь щелчка JRE (путь должен быть localePath\java\jdk1.8.0_25\jre
) → укажите имя → Сохранить → выберите тот же JRE для проекта → Готово → ОК. Обновите / соберите проект один раз → попробуйте запустить свой Java-файл. Он должен работать.
У меня была установлена Java 1.7 и 1.8 (с SBT 2.4, который требует Java 1.8). Хотя мой проект был связан с Java 1.8, мне пришлось изменить переменную среды JAVA_HOME на точку 1.8. Наконец, проблема решена.
Если вы используете Eclipse, убедитесь, что меню " Проект" → " Свойства" → " Путь сборки Java" → библиотеки → системная библиотека JRE соответствует требованиям вашего проекта (как показано на рисунке).
Все, что вам нужно сделать, чтобы решить эту проблему, это... убедиться, что ваша версия Java одинакова как для компиляции, так и для запуска. Независимо от того, какие инструменты или IDE вы используете.
Если вы используете Linux и у вас установлены разные версии Java, используйте следующую команду:
sudo update-alternatives --config java
Это позволит быстро переключаться между версиями Java, установленными в системе. Выбрав Java 8, я решу вашу проблему.
Это произошло со мной, когда я установил свежую Java 1.8, но оставил старый интерпретатор командной строки открытым.
У него был старый путь, и он продолжал выполнять приложение с Java 1.7, тогда как проект уже был построен на Java 1.8.
Обновите свою версию Андорры до JDK 1.8.
Это несоответствие версий: ваш компилятор ищет версию Java 8, а у вас версия 7 Java.
Вы можете запустить сборку приложения в версии 7 в версии 8, но вы не можете сделать это наоборот, потому что когда дело доходит до более высоких уровней, в версии встроено больше функций, улучшений, чем в предыдущих версиях.
Скачать версию JDK по этой ссылке
И установите свой путь JDK для этого
Если ваша версия JDK верна. Другая причина, которая может вызвать эту ошибку, заключается в том, что ваша Android Studio имеет низкую версию, но ваша версия Gradle слишком высокая. Upgrade your IDE to a newer version
может помочь это
Вам нужно использовать JDK 1.7.0, а не JDK 1.8.0.
Чтобы убедиться в этом, вам нужно удалить JDK 1.8.0 на вашем компьютере.
Если вы используете Mac, вам нужно удалить:
/Library/Java/JavaVirtualMachines/jdk.jdk
/Library/PreferencePanes/JavaControlPanel.prefPane
/ Библиотека / Интернет-плагины /JavaAppletPlugin.plugin
Затем вам нужно переустановить JDK 1.7.0, и вам удастся сгенерировать файл.jar.
Возможно, вы захотите проверить настройки Run Configurations, если вы используете Eclipse v4.4 (Luna) и уже выполнили все шаги, упомянутые выше.
Там может быть несколько возможностей, которые вызывают эту ошибку. Основной причиной является несоответствие проекта, требующего компиляции в JDK1.8/JRE8, в то время как компилятором среды является JDK1.7/JRE7.
Вы можете проверить мой блог, чтобы просмотреть все ваши настройки.
Если вы используете IntelliJ IDEA, перейдите в Project Structure (Ctrl + Alt + Shift + S), и вы можете изменить JDK вашего проекта.
Просто зайдите на http://java.com/en/download/ и обновите свою версию JRE
Я столкнулся с этой проблемой в Eclipse на Mac OS X v10.9 (Mavericks). Я перепробовал много ответов о переполнении стека... наконец, после полного дня я * установил свежую версию Android SDK (и обновил Eclipse, меню Проект → Свойства → Android, чтобы использовать новый путь) *.
Мне нужно было получать обновления SDK, но я собирал только те обновления, которые, по моему мнению, были необходимы, избегая API, с которыми я не работал (например, Wear и TV) ... и это помогло. Видимо, кажется, что я повредил свой SDK где-то по пути.
КСТАТИ.. Я действительно обнаружил ошибку с одним проектом в моей рабочей области, но это было похоже на импорт appcompat-7, который я не использовал. После запуска этого проекта, до сих пор не увидели проблемы всплыли на поверхность.
Ни один из этих ответов не помог мне, но я нашел решение.
У меня был веб-проект, используемый в Wildfly 8.2, построенный с Maven, для source и target было установлено значение 1.8 на maven-compiler-plugin, а все настройки Eclipse и Maven были установлены на Java 1.8. Проблема была в том, что Wildfly 8.2 не может обрабатывать Java 1.8, поэтому мне пришлось установить все на 1.7, и это сработало.
Просто хочу добавить это. У меня была эта проблема сегодня. Скорректированы настройки в моем проекте, перестроен и та же проблема. Я (неправильно) предположил, что изменение настроек в моем проекте (Eclipse) приведет к перекомпиляции проектов, от которых зависит мой проект. Настройка параметров для всех проектов в дереве зависимостей решила проблему.