我已按照安装Google App Engine SDK Eclipse插件的说明进行操作:
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版本。
答案 0 :(得分:1)
插件版本与java版本不对应。
我安装了1.4.2并使用java 1.6