Неподдерживаемая версия major.minor 52.0

Изображения:

Command Prompt showing versions Командная строка с версиями

Picture of error Изображение ошибки

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>

Error

Hello : Unsupported major.minor version 52.0

В чем проблема?

Ответ 1

Проблема связана с несоответствием версии Java. Ссылаясь на Справочник по видам Java Википедии:

  • J2SE 9 = 53
  • J2SE 8 = 52
  • J2SE 7 = 51
  • J2SE 6.0 = 50
  • J2SE 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,

  1. Перейдите в Настройки Maven → Maven → Импорт. Установите JDK для импортера на 1.8
  2. Перейдите в Настройки Maven → Maven → Runner. Установите JRE на 1.8
  3. Перейдите в Файл → Структура проекта → SDK. Убедитесь, что исходный путь JDK установлен в 1.8

Перезапустить Intellij

Другим подходом, который может помочь, является указание IDEA, с которой запускается версия JDK.

Перейдите по ссылке: /Приложения/IntelliJ\IDEA\15\CE.app/Contents/Info.plist и замените версию JVM на:

<key>JVMVersion</key>
<string>1.8*</string>

Ответ 2

Умный способ исправить эту проблему заключается в компиляции с использованием последнего SDK и использовании кросс-компиляции при компиляции. Для правильного использования параметров требуется rt.jar JRE (не JDK) целевой версии.

Учитывая природу этого апплета, похоже, он может быть скомпилирован для использования с Java 1.1.

Ответ 3

Вам нужно будет изменить уровень соответствия вашего компилятора на 1.7 в вашей среде IDE. Это можно сделать в настройках предварительной настройки вашей среды IDE, например, в Eclipse, перейдите в Windows → Prefences, затем выберите Java и разверните ее, затем выберите Compiler и измените уровень соответствия на 1.7. Я уверен, что это будет работать оттуда

Ответ 4

Вы должны запустить и скомпилировать ваше приложение с той же версией Java.

Если вы используете Eclipse, вы должны сделать 2 вещи:

  • В Eclipse нажмите "Window > Preferences", а в появившемся окне в левой части в разделе "Java" нажмите "Установленные JRE", нажмите "Добавить..." и перейдите в папку, содержащую JDK.

  • Щелкните правой кнопкой мыши на своем проекте и нажмите "Свойства" в появившемся окне с левой стороны, щелкните "Компилятор Java" и снимите флажок "Использовать соответствие из среды исполнения на пути сборки Java", это позволяет вам выбрать в списке "Компилятор компиляции" ту же версию, что и на предыдущем шаге.

Ответ 5

Вам нужно обновить версию java до java 8.

Загрузка последнего Java-архива

Загрузите последнюю версию Java SE Development Kit 8 с официальной страницы загрузки или используйте следующие команды для загрузки из оболочки.

Для 64Bit

 # 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

Для 32Bit

 # 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

Примечание. Если команда Above wget не работает для вас, посмотрите этот пример, чтобы загрузить исходный архив java с помощью терминала.

Установка Java с альтернативами

После извлечения файла архива используйте команду alternatives для его установки. альтернатива доступна в пакете 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, используя следующую команду.

[email protected] ~# 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 сначала помещает новые папки bin bin, чтобы они перекрывали любые существующие java/bin в пути. Немного небрежно оставлять две папки java/bin на вашем пути, поэтому вам следует посоветовать их очистить как отдельную задачу.

Также поместите все вышеперечисленные переменные среды в файл /etc/environment для автоматической загрузки при загрузке системы.

Ответ 6

У меня была та же проблема... конфликт JDK и Plug-In.

Я скомпилировал с использованием 1,8... последнего, и это сообщение начало появляться. Поэтому я искал JRE 7 (http://www.oracle.com/technetwork/java/javase/downloads/server-jre7-downloads-1931105.html).. и установил его... снова... Теперь 1.8 и 1.7 на одном компьютере.

Использование Netbeans и компиляция с таргетингом на версию 1.7 устранили мою проблему.

Ответ 7

Если у вас возникли проблемы в Android Studio и вы установили Android N, измените версию рендеринга Android на более старую, и проблема исчезнет.

введите описание изображения здесь

Ответ 8

Если вы используете среду IDE NetBeans, щелкните правой кнопкой мыши проект и выберите "Свойства" и перейдите к источникам, и вы можете изменить исходный/двоичный формат на более низкую версию JDK.

Enter image description here

Ответ 9

Неподдерживаемая версия 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#ixzz4AVD4Evgv

Ответ 10

Я мог бы решить ту же проблему, используя нижеприведенное решение.

В моем проекте я добавил JAR файл, который был создан в Java 8. И мой проект имел в виду JRE 7. Когда я изменил проект JRE на 8, моя проблема была решена.

Шаги:

В Eclipse щелкните правой кнопкой мыши имя проекта в проводнике проекта → Путь сборки → Библиотеки → нажмите на версию JRE → нажмите "Редактировать" → "Установленная JRE" → Добавить → Standerd VM → выберите JRE home click-path (путь должен быть localePath\java\jdk1.8.0_25\jre) → укажите имя → Сохранить → выберите одну и ту же JRE для проекта → Закончить → OK. Проект обновления/сборки один раз → попробуйте запустить файл Java. Он должен работать.

Ответ 11

Это происходит, когда вы скомпилируете свои проекты на higher version java (скажем, jdk 1.8), а затем запустите его на lower version (скажем, jdk 1.7).

Если у вас есть библиотека JRE-1.7 в пути к проекту,

1.Нажмите на проект

2.Go to Properties

3.Выберите грань проекта

4. Запустите Java в строках, а затем выберите версию (скажем, 1.7), если используете JRE-1.7

5.Щелкните Применить и запустить проект.

Ответ 12

У меня установлена ​​Java 1.7 и 1.8 (с SBT 2.4, которая требует Java 1.8). Хотя мой проект был связан с Java 1.8, мне пришлось изменить переменную среды JAVA_HOME в пункт 1.8. Наконец, проблема решена.

Ответ 13

Я решил мой, удалив старые версии JRE и установил JRE 8

Ответ 14

Если вы используете eclipse, убедитесь, что ваша системная библиотека Project- > properties- > java build path- > libraries- > JRE соответствует вашим требованиям к проекту. (Как показано на рисунке) введите описание изображения здесь

Ответ 15

все, что вам нужно сделать, чтобы решить проблему, - это... чтобы ваша версия java была одинаковой для компиляции и работы. независимо от того, какие инструменты или идеи вы используете.

Ответ 16

Это произошло со мной, когда я установил новый Java 1.8, но оставил интерпретатор старой командной строки открытым. Он имел старый путь и продолжал выполнение приложения с Java 1.7, тогда как проект уже был построен с Java 1.8.

Ответ 17

Если вы используете Linux и у вас установлены разные версии Java, используйте следующую команду:

sudo update-alternatives --config java

Это даст быстрый способ переключения между версиями Java, установленными в системе. Выбрав Java 8, я решит вашу проблему.

Ответ 18

Если ваша версия JDK верна. Другая причина может привести к этой ошибке в том, что ваш Android Studio находится в низкой версии, но ваша версия gradle слишком высока. Upgrade your IDE to a newer version может помочь в этом.

Ответ 19

Вам нужно использовать jdk1.7.0, а не jdk1.8.0.

Чтобы убедиться в этом, вам необходимо удалить jdk1.8.0 на вашем компьютере.

Если вы используете mac, вам нужно удалить:

/Library/Java/JavaVirtualMachines/jdk.jdk

/Library/PreferencePanes/JavaControlPanel.prefPane

/Library/Интернет-плагины/JavaAppletPlugin.plugin

Затем вам нужно переустановить jdk1.7.0, и вам удастся создать файл .jar.

Ответ 20

Обновите версию Андорры до JDK 1.8 Это совпадение версии, которое ваш компилятор ищет java-версию 8, и у вас есть Java-версия 7. Вы можете запустить сборку приложения в версии 7 в версии 8, но вы не можете делать наоборот, потому что, когда дело доходит до более высоких уровней, версии встроены с большим количеством функций, улучшений, а не предыдущих версий Загрузить версию JDK из этой ссылки

И установите для этого путь JDK

Ответ 21

Возможно, вы захотите проверить настройки Run Configurations, если вы используете Eclipse Luna и уже выполнили все шаги, упомянутые выше.

В этой ошибке может быть несколько возможностей. Коренной причиной является несоответствие проекта, требующего компиляции в JDK1.8/JRE8, тогда как компилятор среды JDK1.7/JRE7.

Вы можете проверить мое сообщение в блоге, чтобы просмотреть все ваши настройки.

Ответ 22

Ни один из этих ответов не помог мне, но я нашел решение.
У меня был веб-проект, используемый в Wildfly 8.2, построенный с Maven, исходный и целевой был установлен на 1.8 на maven-компилятор-плагин, а также все настройки Eclipse и Maven были установлены на Java 1.8. Проблема заключалась в том, что Wildfly 8.2 не может обрабатывать Java 1.8, поэтому мне пришлось установить все на 1.7, и это сработало.

Ответ 23

Если вы используете Intellij, перейдите в Project Structure (Ctrl + Alt + Shift + S), и вы можете изменить свои проекты JDK.

Ответ 24

Просто хочу добавить это. У меня была эта проблема сегодня. Скорректированы настройки в моем проекте, перестроены и одна и та же проблема. Я (неправильно) предположил, что изменение настроек в моем проекте (Eclipse) приведет к тому, что проекты, на которых мой проект также будет перекомпилирован. Настройка параметров ко всем проектам в дереве зависимостей решила проблему.

Ответ 25

Я столкнулся с этой проблемой в Eclipse в Mac OS X Mavericks. Я пробовал много ответов на SO.. наконец, после целого дня я установил новую версию Android SDK (и обновил Eclipse Project- > Properties- > Android, чтобы использовать новый путь). Я должен был получить обновления SDK, но только сбрасывал только те обновления, которые, как я думал, были необходимы, избегая API. Я не работал с этими API (например, Wear and TV). , и это сделало трюк. По-видимому, похоже, что я повредил свой SDK где-то на этом пути.

btw.. Я видел обратную поверхность ошибки с одним проектом в моей рабочей области, но, похоже, это связано с импортом appcompat-7, который я не использовал. После этого проекта до сих пор не было видно, что проблема возникает.