Google App Engine中的java.lang.UnsupportedClassVersionError

时间:2012-07-10 01:50:54

标签: google-app-engine gwt rpc

我正在运行Windows 7和juno。 Jdk 1.7,gwt 2.4,app engine 1.7。

我做了stockwatcher教程here,一切都很顺利。然后我将其部署到app引擎。一切仍然很好!

然而,我接着完成了教程here的RPC部分。当我在本地运行时,我得到了一个java.lang.VerifyError,我通过跟随this线程(在默认VM参数中放置-XX:-UseSplitVerifier)修复了该错误。然后它在本地工作,我部署到app引擎。

在app引擎中,我得到了一个java.lang.UpsupportedClassVersionError。我发现两个线程似乎有同样的问题,herehere。我正在使用全新安装的Windows 7,我下载的唯一一个jdk是1.7。通过eclipse看,我看到jre7,jdk 1.7和app engine 1.7。

我在某处看到app引擎无法使用1.7。然而,下载页面上的应用程序引擎sdk版本是1.7(我认为这可能是最新的)但我不知道这些事情是否相关。我继续下载了java 6和app engine sdk 1.6.6,将jre6添加到已安装的jres中,将编译器合规性级别设置为1.6,在我的项目中也进行了更改以获得良好的测量结果,并将默认的应用程序引擎sdk更改为1.6。 6。

现在我收到错误,“Java编译器级别与已安装的java项目方面的版本不匹配。”我搜索了问题,每个人都说要右键单击项目并更改方面,但我似乎无法找到该选项。我也不知道我是否正确地走这条路。如果可能的话,我宁愿使用最新版本的所有内容。我也不明白为什么app引擎在没有RPC的情况下第一次工作,但却破坏了RPC。

任何帮助将不胜感激!!!谢谢!!!

4 个答案:

答案 0 :(得分:3)

GAE目前不支持java 1.7,仅支持1.5和1.6。有关详细信息,请参阅java docs

相关段落如下:

  

App Engine使用Java 6虚拟机(JVM)运行Java应用程序。 App Engine SDK支持Java 5及更高版本,Java 6 JVM可以使用使用任何版本的Java编译器编译的类,直到Java 6。

您下载的GAE sdk版本(1.7)与java版本无任何关系。

答案 1 :(得分:1)

GAE是一个沙箱环​​境。目前它只支持Java 6.但是要解决您的问题,如果您可以将编译版本降级到Java 6,那么您应该能够利用GAE。 但是,如果您想要一个没有任何限制的独立服务器环境,请检查其他云平台,例如herokucloudbee

答案 2 :(得分:0)

可能性

  • 您没有正确的JDK或
  • 您使用的GAE不支持1.7

在.settings下打开下面的文件(使用Navigator窗口)并将java project facet更改为1.6 org.eclipse.wst.common.project.facet.core.xml的

更改后,您必须关闭并重启日食。

答案 3 :(得分:0)

目前,...已支持java 7

警告:在将来的版本中,将删除对Java 6的支持,因此现在开​​始迁移到Java 7是个好主意。如果您一直在使用Java 6并且有兴趣了解迁移到Java 7的可能问题,那么本白皮书可能会有所帮助。

来自:https://developers.google.com/appengine/docs/java/overview