Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在localhost上启动应用程序引擎标准遇到问题-启动失败_Java_Eclipse_Google App Engine_Google Cloud Sdk - Fatal编程技术网

Java 在localhost上启动应用程序引擎标准遇到问题-启动失败

Java 在localhost上启动应用程序引擎标准遇到问题-启动失败,java,eclipse,google-app-engine,google-cloud-sdk,Java,Eclipse,Google App Engine,Google Cloud Sdk,我已经在我的机器上安装了OpenJDK:CLI上的java版本生成以下内容: C:\java -version openjdk version "13" 2019-09-17 OpenJDK Runtime Environment (build 13+33) OpenJDK 64-Bit Server VM (build 13+33, mixed mode, sharing) (我怀疑openjdk 13是根本问题,但由于没有明显的方法使用旧的JDK,如8,我希望Eclip

我已经在我的机器上安装了OpenJDK:CLI上的java版本生成以下内容:

C:\java -version
openjdk version "13" 2019-09-17
OpenJDK Runtime Environment (build 13+33)
OpenJDK 64-Bit Server VM (build 13+33, mixed mode, sharing)
(我怀疑openjdk 13是根本问题,但由于没有明显的方法使用旧的JDK,如8,我希望Eclipse和Google将在最新版本的openjdk下运行。)

我为企业Java开发人员新安装了EclipseIDE2020-06(4.16.0)

我立即去了Eclipse市场,安装了用于Eclipse1.8.3的Google云工具。我等了几分钟才完成安装

然后我收到一个通知,说需要Google Cloud SDK,安装将立即开始。我等着这个完成

为了验证安装,我创建了一个新的GoogleAppEngine标准java项目,该项目生成了一个基本的HelloWorld网页和相应的servlet。我没有更改任何代码、配置或首选项

我试图通过选择DEBUG AS>appengine来验证功能

几秒钟后,显示一个错误对话框,说明:

“在本地主机上启动应用程序引擎标准”遇到问题。 本地主机上的服务器应用程序引擎标准无法启动

单击“详细信息”按钮可提供相同的信息

控制台窗格中显示以下内容:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.appengine.tools.development.StreamHandlerFactory (file:/C:/Users/Jeff.Thurston/AppData/Local/google/ct4j-cloud-sdk/LATEST/google-cloud-sdk/platform/google_appengine/google/appengine/tools/java/lib/impl/appengine-local-runtime.jar) to method java.net.URL.getURLStreamHandler(java.lang.String)
WARNING: Please consider reporting this to the maintainers of com.google.appengine.tools.development.StreamHandlerFactory
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
java.lang.RuntimeException: Unable to create a DevAppServer
    at com.google.appengine.tools.development.DevAppServerFactory.doCreateDevAppServer(DevAppServerFactory.java:369)
    at com.google.appengine.tools.development.DevAppServerFactory.createDevAppServer(DevAppServerFactory.java:301)
    at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:383)
    at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:45)
    at com.google.appengine.tools.development.DevAppServerMain.run(DevAppServerMain.java:257)
    at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:248)
Caused by: java.lang.ExceptionInInitializerError
    at com.google.appengine.tools.development.DevAppServerImpl.<init>(DevAppServerImpl.java:124)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
    at com.google.appengine.tools.development.DevAppServerFactory.doCreateDevAppServer(DevAppServerFactory.java:354)
    ... 5 more
Caused by: java.lang.IllegalStateException: java.lang.NoSuchMethodException: java.net.SocksSocketImpl.<init>()
    at com.google.appengine.tools.development.DevSocketImplFactory.<clinit>(DevSocketImplFactory.java:76)
    ... 12 more
Caused by: java.lang.NoSuchMethodException: java.net.SocksSocketImpl.<init>()
    at java.base/java.lang.Class.getConstructor0(Class.java:3350)
    at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2554)
    at com.google.appengine.tools.development.DevSocketImplFactory.<clinit>(DevSocketImplFactory.java:72)
    ... 12 more
警告:发生了非法的反射访问操作
警告:com.google.appengine.tools.development.StreamHandlerFactory(文件:/C:/Users/Jeff.Thurston/AppData/Local/google/ct4j cloud sdk/LATEST/google cloud sdk/platform/google\u appengine/tools/java/lib/impl/appengine Local runtime.jar)对方法java.net.URL.getURLStreamHandler(java.lang.String)的非法反射访问
警告:请考虑将此报告给COM.GoGoLe.AppDealth.Toooal.Stand工具工厂的维护人员。
警告:使用--invalize access=warn以启用对进一步非法访问操作的警告
警告:所有非法访问操作将在未来版本中被拒绝
java.lang.RuntimeException:无法创建DevAppServer
位于com.google.appengine.tools.development.DevAppServerFactory.doCreateDevAppServer(DevAppServerFactory.java:369)
在com.google.appengine.tools.development.DevAppServerFactory.createDevAppServer(DevAppServerFactory.java:301)
在com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:383)
位于com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:45)
位于com.google.appengine.tools.development.DevAppServerMain.run(DevAppServerMain.java:257)
位于com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:248)
原因:java.lang.ExceptionInInitializeError
位于com.google.appengine.tools.development.DevAppServerImpl.(DevAppServerImpl.java:124)
位于java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
位于java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
位于java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
位于com.google.appengine.tools.development.DevAppServerFactory.doCreateDevAppServer(DevAppServerFactory.java:354)
... 还有5个
原因:java.lang.IllegalStateException:java.lang.NoSuchMethodException:java.net.socksocketimpl.()
位于com.google.appengine.tools.development.DevSocketImplFactory(DevSocketImplFactory.java:76)
... 还有12个
原因:java.lang.NoSuchMethodException:java.net.socksocketimpl。()
位于java.base/java.lang.Class.getConstructor0(Class.java:3350)
位于java.base/java.lang.Class.getDeclaredConstructor(Class.java:2554)
在com.google.appengine.tools.development.DevSocketImplFactory。(DevSocketImplFactory.java:72)
... 还有12个

我发现这种情况与您的情况类似,建议使用这种方法从java 8迁移到java 11,希望有帮助。

App Engine标准开发服务器仅支持java 8。您可以从许多地方下载Java8JRE(或JDK),如AdoptOpenJDK.net、Azul的Zulu或其他地方

安装Java 8 JRE后,您需要配置Eclipse,以便能够使用此JRE启动开发服务器:

  • 打开首选项>Java>已安装的JRE。如果找不到Java 8虚拟机,请选择添加或搜索
  • 打开Preferences>Java>Installed JREs>Execution Environments并选择
    JavaSE-1.8
    ,确保您的Java 8虚拟机被选中为默认虚拟机

  • 然后,您应该能够重新启动应用程序,该应用程序应该使用新的JRE。

    为什么您说您不能使用旧的JDK?我在openjdk.java.net上找不到Windows安装二进制文件,但是,我确实可以从Oracle获得我需要的。尽管用户可以选择将应用程序迁移到java 11,请尝试一下,但是仍然得到支持,这是有效的,但是我必须做一些家务来达到目的。除了采用OpenJDK之外,我还有一个Java13和Java8。当我删除了除了OpenJDK之外的所有内容时,一切都开始工作了。谢谢@brian的帮助!