我觉得我一直跟着这个圈子走。我在Eclipse中遵循了Google App Engine的入门指南(https://developers.google.com/appengine/docs/java/gettingstarted/),一切都相当顺利,直到我将其上传到App Engine。
我收到500个错误,所以我检查了日志,发现:“guestbook / SignGuestbookServlet:不支持的major.minor版本51.0”“
然后我搜索这个问题(当然是在stackoverflow上)并找到了这个解决方案:Google App Engine and Java Version?
因此,我将合规性级别设置为1.6,然后在对话框的底部,我收到警告“当选择1.6合规性时,请确保已安装并激活兼容的JRE(当前为1.7)”。
我很高兴点击OK,它会提示重建。在重建之后,我得到了这个新错误:“Java编译器级别与已安装的Java项目方面的版本不匹配。”
没有故意在项目中使用任何方面我搜索了一些帮助(再次在stackoverflow上)并找到:"Faceted Project Prblem (Java Version Mismatch)" error message
不幸的是,它甚至没有帮助,因为我没有使用Maven,当我调出项目的属性时,没有项目属性 - > Project Facets面板让我可以更改版本。
因此,似乎我遇到了无法在Eclipse中编译或无法部署到App Engine的问题。我知道我可能在这里遗漏了一些明显的东西,但我无法完全理解它。
更新:我已卸载所有JRE和JDK,并仅重新安装了jdk1.6.0_32。问题继续完全相同。
答案 0 :(得分:7)
我遇到了同样的问题。我能够通过使用Navigator视图和编辑.settings / org.eclipse.wst.common.project.facet.core.xml来解决,改为:
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<installed facet="java" version="1.6"/>
</faceted-project>
在此更改之后,错误消失了,我可以使用jre1.7但java 1.6合规级别在DevMode中成功运行GWT项目。
似乎应该有一种方法可以通过项目配置来编辑这个java facet,但我在Juno中找不到它。
答案 1 :(得分:2)
至少在我的情况下,答案似乎是,如果在创建Web应用程序时将Eclipse默认编译器级别设置为1.7,则无法成功将其切换为1.6。
示例1:使用JRE 1.6
示例2:使用JRE 1.7
<强>解决方案:强>
在使用google插件创建Web应用程序之前,请将JRE和编译器级别切换为1.6(如示例1所示)。
如果你的项目已经存在,那么希望你没有太多的东西可以再创建它。
答案 2 :(得分:2)
在几个小时内解决这个问题之后,在war文件夹中删除我的nocache.js是最后一块拼图。
与上面的答案相反,在1.7中创建应用程序后,我成功地降级到合规级别1.6