GAE начинает работать на Java, Eclipse Indigo - не может скомпилировать как 1.6
Я чувствую, что продолжаю ходить кругами с этим. Я следовал руководству по началу работы для Google App Engine ( https://developers.google.com/appengine/docs/java/gettingstarted/) в Eclipse, и все прошло относительно хорошо, пока я не загрузил его в App Engine.
Я получил 500 ошибок, поэтому я проверил журналы и обнаружил следующее: "guestbook/SignGuestbookServlet: Unsupported major.minor version 51.0]"
Затем я искал эту проблему (конечно, в stackru) и нашел это решение: Google App Engine и версия Java?
Поэтому я установил уровень соответствия 1.6, а затем в нижней части диалогового окна я получил предупреждение "При выборе соответствия 1.6 убедитесь, что совместимая JRE установлена и активирована (в настоящее время 1.7)".
Я счастлив, нажмите кнопку ОК, и он попросит восстановить. После восстановления я получаю эту новую ошибку: "Уровень компилятора Java не соответствует версии установленного аспекта проекта Java".
Не сознательно использовав какие-либо аспекты в проекте, я выполняю поиск некоторой помощи (опять-таки по stackru) и нахожу это: сообщение об ошибке "Faceted Project Prblem (Java Version Mismatch)"
К сожалению, это даже близко не помогает, потому что я не использую Maven, и когда я поднимаю свойства проекта, нет панели Свойства проекта -> Фасеты проекта, чтобы я мог изменить версию.
Похоже, что я застрял с чем-то, что либо невозможно скомпилировать в Eclipse, либо нельзя развернуть в App Engine. Я знаю, что, возможно, я здесь упускаю что-то очевидное, но не могу понять, что именно.
ОБНОВЛЕНИЕ: я удалил все JRE и JDK, и переустановил только jdk1.6.0_32. Проблема продолжается точно так же.
3 ответа
У меня такая же проблема. Я смог решить с помощью представления навигатора и отредактировать файл.settings/org.eclipse.wst.common.project.facet.core.xml, изменив его на:
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<installed facet="java" version="1.6"/>
</faceted-project>
После этого изменения ошибка исчезла, и я смог успешно запустить проект GWT в DevMode, используя уровень соответствия jre1.7, но java 1.6.
Кажется, действительно должен быть способ отредактировать этот аспект Java через конфигурацию проекта, но я не смог найти его в Juno.
После нескольких часов борьбы с этой проблемой, удаление моего nocache.js из папки war было последней частью головоломки.
Вопреки ответу выше, мне удалось успешно понизить уровень соответствия 1.6 после создания приложения в 1.7
Ответ, по крайней мере, в моем случае, кажется, что если ваш уровень компилятора по умолчанию в Eclipse установлен на 1,7 при создании веб-приложения, вы не сможете переключить его на 1,6 успешно.
Пример 1: Использование JRE 1.6
- В eclipse установите Preferences->Java-> Установленные JRE в jdk 1.6.0_32.
- Установите Preferences->Java->Compiler на уровень соответствия 1.6
- Используйте плагин Google, чтобы создать "Новое веб-приложение"
- Запустите его локально - успех
- Развертывание в движке приложения, удаленное выполнение - успех
Пример 2. Использование JRE 1.7
- В eclipse установите Preferences->Java-> Установленные JRE в jdk 1.7.0_04
- Установите Preferences->Java->Compiler на уровень соответствия 1.7
- Используйте плагин Google, чтобы создать "Новое веб-приложение"
- Запустите его локально - успех
- Загрузка в движок приложения - ошибка (не поддерживается Major.minor версия 51.0)
- В eclipse установите Preferences->Java->Compiler на уровень соответствия 1.6 - ошибка (не компилируется локально (уровень компилятора Java не соответствует версии установленного аспекта проекта Java).
Решение:
Прежде чем использовать плагин Google для создания веб-приложения, переключите уровень JRE и уровень компилятора на 1.6 (как показано в примере 1).
Если ваш проект уже существует, то, надеюсь, вы не зашли слишком далеко с ним и можете создать его снова.