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

  1. В eclipse установите Preferences->Java-> Установленные JRE в jdk 1.6.0_32.
  2. Установите Preferences->Java->Compiler на уровень соответствия 1.6
  3. Используйте плагин Google, чтобы создать "Новое веб-приложение"
  4. Запустите его локально - успех
  5. Развертывание в движке приложения, удаленное выполнение - успех

Пример 2. Использование JRE 1.7

  1. В eclipse установите Preferences->Java-> Установленные JRE в jdk 1.7.0_04
  2. Установите Preferences->Java->Compiler на уровень соответствия 1.7
  3. Используйте плагин Google, чтобы создать "Новое веб-приложение"
  4. Запустите его локально - успех
  5. Загрузка в движок приложения - ошибка (не поддерживается Major.minor версия 51.0)
  6. В eclipse установите Preferences->Java->Compiler на уровень соответствия 1.6 - ошибка (не компилируется локально (уровень компилятора Java не соответствует версии установленного аспекта проекта Java).

Решение:

Прежде чем использовать плагин Google для создания веб-приложения, переключите уровень JRE и уровень компилятора на 1.6 (как показано в примере 1).

Если ваш проект уже существует, то, надеюсь, вы не зашли слишком далеко с ним и можете создать его снова.

Другие вопросы по тегам