繁体   English   中英

Google App Engine 示例 - 错误(Java 版本问题?)

[英]Google App Engine example - error (Java version problem?)

我已按照说明安装 Google App Engine SDK Eclipse 插件:

http://code.google.com/appengine/docs/java/gettingstarted/installing.html http://code.google.com/theGoogleDowns/downloadPluws

然后我按照说明创建了一个新项目:

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)

So it seems the method java.util.Collections.newSetFromMap cannot be found, and indeed it does not exist in Java 1.5: http://download.oracle.com/javase/1.5.0/docs/api/java/util/集合.html

但它确实存在于 Java 1.6: http://download.oracle.com/javautilse/6/docs/api/java/util.CollectionsMap)

这有点令人困惑,因为 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 资源管理器中右键单击项目:

Properties > Java Compiler >  Enable project specific settings

您应该在下拉菜单中看到您新添加的 Java 版本。

插件版本与java版本不对应。

我安装了 1.4.2 并使用 java 1.6

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM