2

我使用 Google Web Toolkit 开发了一个小型应用程序,并希望将其部署到 Google App Engine (GAE) 服务器。我默认使用 Eclipse Juno 和 Java 7,但是当我尝试部署到 GAE 时,我意识到它还不支持 Java 7。所以我在项目设置中切换到 Java 6 JRE(将 Build Path/Libraries 设置为“java-6-openjdk-amd64”,Java Compiler/Compiler 合规级别设置为 1.6。

但是,当我尝试通过 Google Eclipse 插件部署我的应用程序时,它仍然会抛出相同的 RuntimeException:

“该应用程序包含 Java 7 类,但尚未设置 --use_java7 标志。”

这是完整的调试输出:

Unable to update:
java.lang.RuntimeException: The application contains Java 7 classes, but the --use_java7 flag has not been set.
        at com.google.appengine.tools.admin.Application.createStagingDirectory(Application.java:576)
        at com.google.appengine.tools.admin.AppAdminImpl.doUpdate(AppAdminImpl.java:370)
        at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:53)
        at com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:433)
        at com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:148)
        at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

如何删除 Java 7 剩余部分以便 Google 插件理解?

这一切都在 Ubuntu 12.10 64 位上运行。

4

2 回答 2

4

您可能正在使用 Java 7 安装进行编译。在 Eclipse 中,转到Window > Preferences。在那里,浏览到Java > Installed JREs

右侧的列表可能仅显示您的情况下的 jre/jdk7。您必须在此处添加 Java 5 或 6 的安装,并确保它是“勾选”的 JRE。

之后,使用Project > Clean...,选择“Clean All Projects”并确保勾选“Start a build immediatly”以及“build the entire workspace”。

[编辑:这个答案对于 android 开发不准确......当我意识到这一点时,快速搜索显示该问题看起来非常接近Failed to deploy to Google App Engine 因为 --use_java7 标志尚未设置,答案是应该是一样的。]

于 2013-01-11T13:36:31.580 回答
1

我最终能帮助它的唯一方法是在 Eclipse 中创建一个新项目,立即切换到 Java 6(构建路径、编译器、Java 方面),然后复制/粘贴上一个项目中的所有文件和 GAE 设置。

于 2013-01-13T16:07:05.800 回答