1

我正在使用 Eclipse Photon 中的 Java 7 开发 Java App Engine 应用程序。当我创建一个新的 App 引擎标准项目并导入此项目并尝试运行它时,我从我们的一位开发人员那里收到了一个现有的 App 引擎 Java Web 应用程序并尝试运行它返回此错误:

本地主机上的 Server App Engine Standard 无法启动。

这是堆栈跟踪:

Warning: Google App Engine Java 7 runtime is deprecated.
Warning: See https://cloud.google.com/appengine/docs/deprecations/java7
java.lang.RuntimeException: Unable to create a DevAppServer
    at com.google.appengine.tools.development.DevAppServerFactory.doCreateDevAppServer(DevAppServerFactory.java:401)
    at com.google.appengine.tools.development.DevAppServerFactory.access$000(DevAppServerFactory.java:31)
    at com.google.appengine.tools.development.DevAppServerFactory$1.run(DevAppServerFactory.java:318)
    at com.google.appengine.tools.development.DevAppServerFactory$1.run(DevAppServerFactory.java:315)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at com.google.appengine.tools.development.DevAppServerFactory.createDevAppServer(DevAppServerFactory.java:314)
    at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:374)
    at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:45)
    at com.google.appengine.tools.development.DevAppServerMain.run(DevAppServerMain.java:247)
    at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:238)
Caused by: java.lang.ClassCastException: ClassLoader is jdk.internal.loader.ClassLoaders$AppClassLoader@4459eb14, not a URLClassLoader.
    at com.google.apphosting.utils.security.SecurityManagerInstaller.generatePolicyFile(SecurityManagerInstaller.java:139)
    at com.google.apphosting.utils.security.SecurityManagerInstaller.install(SecurityManagerInstaller.java:94)
    at com.google.appengine.tools.development.DevAppServerFactory.doCreateDevAppServer(DevAppServerFactory.java:377)
    ... 9 more
4

1 回答 1

1

因此,您的堆栈跟踪表明您正在使用 Java 9 虚拟机(或更高版本)启动,App Engine 开发工具不支持该虚拟机。

at java.base/java.security.AccessController.doPrivileged(Native Method)

假设您使用的是 Cloud Tools for Eclipse,首先确保您的 Google Cloud SDK 是最新的。如果您使用自己的副本,请gcloud components update在命令行上运行。如果您让 Cloud Tools for Eclipse 管理您的 SDK,请打开Preferences > Google Cloud Tools并选择Update

然后,您需要将 Eclipse 配置为使用 Java 8 JRE 或 JDK 作为 Java 8 启动的默认 JVM:

  1. 如果您还没有 Java 8 VM,请安装。
  2. 打开Preferences > Java > Installed JREs。如果找不到您的 Java 8 VM,请选择添加搜索。
  3. 打开Preferences > Java > Installed JREs > Execution Environments并选择JavaSE-1.8,并确保您的 Java 8 VM 被选中为默认 VM。

(如果您使用的是 Java 1.7 VM,则可以重复上述操作,但请注意App Engine 对 Java 7 的支持将于 2019 年 1 月关闭。)

然后您应该能够启动。

于 2018-09-19T15:02:15.407 回答