本地主机上eclipse返回服务器应用程序引擎标准中的Java应用程序引擎项目启动失败

本地主机上eclipse返回服务器应用程序引擎标准中的Java应用程序引擎项目启动失败,java,google-app-engine,google-eclipse-plugin,google-app-engine-launch,Java,Google App Engine,Google Eclipse Plugin,Google App Engine Launch,我正在Eclipse中使用Java7开发一个Java应用程序引擎应用程序。当我创建一个新的App engine标准项目并导入此项目并尝试运行它时,我从我们的一位开发人员那里收到了一个现有的App engine Java web应用程序返回此错误: 本地主机上的服务器应用程序引擎标准无法启动 这是堆栈跟踪: Warning: Google App Engine Java 7 runtime is deprecated. Warning: See https://cloud.google.com/a

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

本地主机上的服务器应用程序引擎标准无法启动

这是堆栈跟踪:

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

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

at java.base/java.security.AccessController.doPrivileged(Native Method)
假设您正在使用Eclipse的云工具,首先确保您的Google Cloud SDK是最新的。如果您正在使用自己的副本,请在命令行上运行
gcloud components update
。如果您让Eclipse云工具管理您的SDK,那么打开Preferences>GoogleCloudTools并选择Update

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

  • 如果您还没有Java8VM,请安装它
  • 打开首选项>Java>已安装的JRE。如果找不到Java 8虚拟机,请选择添加或搜索
  • 打开Preferences>Java>Installed JREs>Execution Environments并选择
    JavaSE-1.8
    ,确保您的Java 8虚拟机被选中为默认虚拟机
  • (如果您使用的是Java 1.7虚拟机,则可以重复上述步骤,不过请注意。)


    然后,您应该可以启动。

    检查我共享的链接…您好@Pradeep,在我的情况下,即使是Helloworld应用程序也会出现相同的错误。@AbdulRehman请确认您是否遵循quickstart。检查,如果问题仍然存在,请提供您的
    pom.xml
    ,但删除所有敏感信息,如您的谷歌云项目ID。