尝试使用 Google Cloud Tools for Eclipse 进行基本设置,以运行在 Eclipse 中运行的本地 Google App Engine,但在使用“运行方式 -> App Engine”选项启动服务器时,我不断收到以下错误。
我相信我的环境很好,因为我能够使用 java_dev_appserver 命令从命令行使用本地应用程序服务器运行测试应用程序,因此该问题似乎特定于 Eclipse 环境。
at com.google.appengine.tools.development.DevAppServerFactory.doCreateDevAppServer(DevAppServerFactory.java:383)
at com.google.appengine.tools.development.DevAppServerFactory.createDevAppServer(DevAppServerFactory.java:315)
at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:385)
at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:59)
at com.google.appengine.tools.development.DevAppServerMain.run(DevAppServerMain.java:259)
at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:250)
Caused by: java.lang.ExceptionInInitializerError
at com.google.appengine.tools.development.DevAppServerImpl.<init>(DevAppServerImpl.java:136)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at com.google.appengine.tools.development.DevAppServerFactory.doCreateDevAppServer(DevAppServerFactory.java:368)
... 5 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make static java.net.URLStreamHandler java.net.URL.getURLStreamHandler(java.lang.String) accessible: module java.base does not "opens java.net" to unnamed module @49c43f4e
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
at java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
at com.google.appengine.tools.development.StreamHandlerFactory.<clinit>(StreamHandlerFactory.java:53)
... 12 more
我从一台干净的 Windows 11 计算机开始,安装了 Google Cloud SDK,添加了 app-engine-java 组件,配置了一个项目,通过使用 CLI 部署到云进行了测试,安装了 Eclipse,添加了 Google Tools for Eclipse 插件,使用 Google 插件创建项目 -> Google App Engine 标准项目创建了一个示例项目,并尝试运行它。
这可能很简单,但我无法弄清楚。
最佳答案
就我而言,我在从 Java 11 升级到 Java 17 时遇到了这个问题(因此对降级回 Java 11 不感兴趣)。我能够通过升级一些其他依赖项来解决该问题。具体来说,去
appengine-gradle-plugin:2.4.5
spring-test:6.0.10
解决了问题。我将把其中哪一项作为关键更改作为读者的练习。
关于Eclipse Google Cloud 插件无法启动 DevAppServer : InaccessibleObjectException: Unable to make static java.net.URLStreamHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70474332/