Подтвердить что ты не робот

Как преобразовать проект Eclipse в более раннюю версию Java?

У меня есть проект в Eclipse, который ранее использовал JRE7 и ссылался на системные библиотеки JRE7. Мне нужно, чтобы он теперь работал в JRE6. Я не использовал какой-либо специфический синтаксис Java 7, поэтому сам исходный код полностью совместим. Вот что я уже сделал:

  • Я установил JDK6.
  • Затем я перешел в Window > Preferences > Java > Installed JREs и установил JRE6 по умолчанию.
  • Я сконфигурировал путь сборки моего проекта для ссылки на системную библиотеку JRE6, а не на JRE7.
  • Наконец, я пошел в Run Configurations > JRE и установил его для запуска в JRE6.

Сразу после этого последнего шага в верхней части диалога отображается сообщение, в котором говорится:

JRE несовместима с совместимостью файла .class: 1.7

И когда я запускаю проект, я получаю это сообщение об ошибке:

java.lang.UnsupportedClassVersionError: ExampleProcessingApp : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:314)
    at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:146)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:608)
    at sun.applet.AppletPanel.createApplet(AppletPanel.java:798)
    at sun.applet.AppletPanel.runLoader(AppletPanel.java:727)
    at sun.applet.AppletPanel.run(AppletPanel.java:380)
    at java.lang.Thread.run(Thread.java:679)

Как я упоминал ранее, фактический код проекта ничем не отличается от синтаксиса Java 6, поэтому он будет работать в JRE6. По-видимому, мне нужно как-то перекомпилировать все .class файлы из исходного кода. Я думал, что Eclipse сделает это автоматически. Любые идеи?

4b9b3361

Ответ 1

Сначала очистите свой проект:

Проект > Очистить

Если это не исправить...

Вторые проверяют ваш javas-компилятор вашего проекта:

Проект > Свойствa > Компилятор Java

Ответ 2

Второй метод, предоставленный Колином, работал у меня.

Вот визуальное представление всех шагов для этого подхода:

enter image description hereenter image description hereenter image description hereenter image description here

Ответ 3

Я думал, что Eclipse сделает это автоматически. Любые идеи?

Нет Eclipse не очищает все проекты, пока вы не попросите его сделать это. Он только очищает созданные файлы классов от источников, которые вы изменили. Вы должны сделать чистую сборку своего решения, перестроить все и запустить снова, он должен работать нормально.

Ответ 4

У меня есть случай, когда очистка проекта не решила проблему. Мне действительно пришлось закрыть и снова открыть конкретный проект, чтобы он работал.

Ответ 5

Спасибо всем. Хотя он и решил, Я хотел бы добавить еще один способ сделать это, чтобы добавить еще один вкус.


Это можно сделать, отредактировав вручную настройки проекта в файле project_directory/.settings/org.eclipse.jdt.core.prefs, а затем обновив проект в eclipse.

Изменить с 1.7 до 1.6