【问题标题】:GAE getting started in Java, Eclipse Indigo - can't compile as 1.6GAE 在 Java 中入门,Eclipse Indigo - 无法编译为 1.6
【发布时间】:2012-05-28 12:11:53
【问题描述】:

我觉得我一直在玩这个。我按照 Eclipse 中的 Google App Engine 入门指南 (https://developers.google.com/appengine/docs/java/gettingstarted/) 进行操作,一切进展顺利,直到我将其上传到 App Engine。

我收到了 500 个错误,因此我检查了日志并发现:“guestbook/SignGuestbookServlet : Unsupported major.minor version 51.0]”

然后我搜索这个问题(当然是在 stackoverflow 上)并找到了这个解决方案:Google App Engine and Java Version?

所以我将合规级别设置为1.6,然后在对话框的底部,我收到警告“选择1.6合规性时,请务必安装并激活(目前1.7)”。

我很高兴单击“确定”,它会提示重新构建。重建后,我得到这个新错误:“Java 编译器级别与安装的 Java 项目方面的版本不匹配。”

没有故意在项目中使用任何方面,我搜索了一些帮助(再次在 stackoverflow 上)并找到了这个:"Faceted Project Prblem (Java Version Mismatch)" error message

不幸的是,它甚至没有帮助,因为我没有使用 Maven,当我调出项目的属性时,没有项目属性 -> 项目方面面板供我更改版本。

因此,我似乎遇到了一些无法在 Eclipse 中编译或无法部署到 App Engine 的东西。我知道我可能在这里遗漏了一些明显的东西,但我不能完全确定它。

更新:我已经卸载了所有的 JRE 和 JDK,并且只重新安装了 jdk1.6.0_32。问题仍然完全相同。

【问题讨论】:

  • 尝试安装JDK6并在其下运行Eclipse。
  • 嗨@peter,我刚刚尝试使用INI文件中的-vm jdk1.6.0_31(以前是jdk1.7.0_04)运行eclipse,但没有任何区别

标签: java eclipse google-app-engine eclipse-indigo facet


【解决方案1】:

我遇到了同样的问题。我能够通过使用 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 中找不到它。

【讨论】:

  • 这仍然是 ADT 22 的解决方案。谢谢。
【解决方案2】:

至少在我的情况下,答案似乎是,如果您在创建 Web 应用程序时将 Eclipse 默认编译器级别设置为 1.7,那么您将无法成功将其切换到 1.6。

示例 1:使用 JRE 1.6

  1. 在 Eclipse 中设置 Preferences->Java->Installed JREs to jdk 1.6.0_32
  2. Set Preferences->Java->Compiler to compliance level 1.6
  3. 使用 google 插件创建“新 Web 应用程序”
  4. 在本地运行 - 成功
  5. 部署到应用引擎,远程运行 - 成功

示例 2:使用 JRE 1.7

  1. 在 Eclipse 中设置 Preferences->Java->Installed JREs to jdk 1.7.0_04
  2. Set Preferences->Java->Compiler to compliance level 1.7
  3. 使用 google 插件创建“新 Web 应用程序”
  4. 在本地运行 - 成功
  5. 上传到应用引擎 - 失败(不支持的 major.minor 版本 51.0)
  6. 在 Eclipse 中将 Preferences->Java->Compiler 设置为合规级别 1.6 - 失败(不会在本地编译(Java 编译器级别与安装的 Java 项目方面的版本不匹配)。

解决方案:

在使用 google 插件创建 Web 应用程序之前,将 JRE 和编译器级别切换到 1.6(如示例 1 所示)。

如果您的项目已经存在,那么希望您还没有走得太远,可以再次创建它。

【讨论】:

    【解决方案3】:

    在解决这个问题几个小时后,删除我在 war 文件夹中的 nocache.js 是最后一块拼图。

    与上面的答案相反,在 1.7 中创建应用程序后,我能够成功降级到合规级别 1.6

    【讨论】:

      猜你喜欢
      • 2013-01-26
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-02
      • 2012-03-31
      相关资源
      最近更新 更多