Пример Google App Engine - ошибка (проблема версии Java?) - PullRequest
3 голосов
/ 14 июля 2011

Я следовал инструкциям по установке подключаемого модуля Eclipse SDK Google App Engine:

http://code.google.com/appengine/docs/java/gettingstarted/installing.html http://code.google.com/appengine/downloads.html#Download_the_Google_Plugin_for_Eclipse

Затем я следовал инструкциям по созданию нового проекта:

http://code.google.com/appengine/docs/java/tools/eclipse.html#Creating_a_Project

Однако, когда я пытаюсь отладить или запустить проект в Eclipse, я получаю следующую ошибку:

Exception in thread "main" java.lang.NoSuchMethodError: java.util.Collections.newSetFromMap(Ljava/util/Map;)Ljava/util/Set;
    at com.google.appengine.tools.development.LocalEnvironment.<init>(LocalEnvironment.java:63)
    at com.google.appengine.tools.development.AbstractContainerService$LocalInitializationEnvironment.<init>(AbstractContainerService.java:538)
    at com.google.appengine.tools.development.AbstractContainerService.loadAppEngineWebXml(AbstractContainerService.java:288)
    at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:160)
    at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:172)
    at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:164)
    at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
    at com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
    at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)

Таким образом, кажется, что метод java.util.Collections.newSetFromMap не может быть найден, и он действительно не существует в Java 1.5: http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collections.html

Но он существует в Java 1.6: http://download.oracle.com/javase/6/docs/api/java/util/Collections.html#newSetFromMap(java.util.Map)

Это немного сбивает с толку, потому что Google App Engine для Java 1.5, или, по крайней мере, это выглядит так, если смотреть на каталог плагинов, содержащий SDK:

eclipse/plugins/com.google.appengine.eclipse.sdkbundle_1.5.1.r36v201106211634

Я не уверен, почему я получаю эту ошибку, когда я следовал инструкциям.

РЕШЕНИЕ

@ kisp - спасибо, что помог мне решить проблему.

У меня на компьютере с Ubuntu установлены две версии Java (1.5 и 1.6):

/usr/lib/jvm/java-6-sun

и

/usr/lib/jvm/java-1.5.0-sun

Я только рассказал Eclipse о Java 1.5. Мне нужно было рассказать о 1.6. Для этого откройте Eclipse:

Window > Preferences > Java > Installed JREs > Add

JRE home должен просто указать каталог, в который установлена ​​Java, для меня это:

/usr/lib/jvm/java-6-sun-1.6.0.24

Имя JRE по умолчанию имеет разумное значение.

После того, как это было добавлено, вы можете либо установить его в качестве рабочего пространства по умолчанию, либо установить конкретные настройки проекта. Щелкните правой кнопкой мыши по проекту в Package Explorer:

Properties > Java Compiler >  Enable project specific settings

В выпадающем меню вы должны увидеть только что добавленную версию Java.

1 Ответ

1 голос
/ 14 июля 2011

Версия плагина не соответствует версии Java.

У меня установлена ​​1.4.2 и я использую java 1.6

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...