Я следовал инструкциям по установке подключаемого модуля 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.