Eclipse Google 云插件无法启动 DevAppServer:InaccessibleObjectException:无法设为静态 java.net.URLStreamHandler
Eclipse Google Cloud plugin Unable to start DevAppServer: InaccessibleObjectException: Unable to make static java.net.URLStreamHandler
尝试使用 Google Cloud Tools for Eclipse 在 Eclipse 中 运行 本地 Google App Engine 运行 进行基本设置,但我保留使用 运行 As -> 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
我从一台干净的Windows11机器开始,安装了GoogleCloud SDK,添加了app-engine-java组件,配置了一个项目,通过部署到云端进行了测试使用 CLI,安装 Eclipse,添加 Google Tools for Eclipse 插件,使用 Google 插件 Create Project -> Google App Engine Standard 项目创建示例项目,并尝试 运行它。
这可能很简单,但我想不通。
默认情况下随 Eclipse 2021-12 安装的 JRE v17 出现了问题。使用 JRE v11 安装 Eclipse 解决了这个问题。感谢 greg-449 让我走上正轨。
将 JVM 降级到 jdk-11.0.13 也为我解决了这个问题。
因为我没有卸载 JRE v17,所以我不得不更改我的 eclipse.ini 文件以指向 JDK 11,然后更新已安装 JRE 的 Eclipse 工作区设置以包含 JDK 11 并更新我的工作区属性以默认使用该版本而不是 JRE 17。我还将 JDK 合规性设置更新为 JDK 11 而不是 17 并禁用了“发布”设置仍然想使用 17.
感谢 post。几天来我一直在研究这个问题 upgrade/downgrading 库等
尝试使用 Google Cloud Tools for Eclipse 在 Eclipse 中 运行 本地 Google App Engine 运行 进行基本设置,但我保留使用 运行 As -> 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
我从一台干净的Windows11机器开始,安装了GoogleCloud SDK,添加了app-engine-java组件,配置了一个项目,通过部署到云端进行了测试使用 CLI,安装 Eclipse,添加 Google Tools for Eclipse 插件,使用 Google 插件 Create Project -> Google App Engine Standard 项目创建示例项目,并尝试 运行它。
这可能很简单,但我想不通。
默认情况下随 Eclipse 2021-12 安装的 JRE v17 出现了问题。使用 JRE v11 安装 Eclipse 解决了这个问题。感谢 greg-449 让我走上正轨。
将 JVM 降级到 jdk-11.0.13 也为我解决了这个问题。
因为我没有卸载 JRE v17,所以我不得不更改我的 eclipse.ini 文件以指向 JDK 11,然后更新已安装 JRE 的 Eclipse 工作区设置以包含 JDK 11 并更新我的工作区属性以默认使用该版本而不是 JRE 17。我还将 JDK 合规性设置更新为 JDK 11 而不是 17 并禁用了“发布”设置仍然想使用 17.
感谢 post。几天来我一直在研究这个问题 upgrade/downgrading 库等