【问题标题】:java.lang.reflect.inaccessibleobjectexception unable to make jdk.internal.loader.classloadersjava.lang.reflect.inaccessibleobjectexception 无法使 jdk.internal.loader.classloaders
【发布时间】:2020-08-22 20:16:18
【问题描述】:

我有一个异常 java.lang.reflect.InaccessibleObjectException: Unable to make jdk.internal.loader.ClassLoaders$AppClassLoader(jdk.internal.loader.ClassLoaders$PlatformClassLoader,jdk.internal.loader.URLClassPath) 可访问: 模块 java.base 不会“打开 jdk.internal.loader”到未命名的模块 @45f08579
在我使用库后编译组:'com.github.snowindy',名称:'scriptlet4docx',版本:'0.8.6'

我找到了一些解决方案,例如
1. java --add-opens java.base/java.lang=ALL-UNNAMED 从这里How to solve InaccessibleObjectException ("Unable to make {member} accessible: module {A} does not 'opens {package}' to {B}") on Java 9?
2. java --add-opens java.base/jdk.internal.loader=ALL-UNNAMED --add-opens jdk.zipfs/jdk.nio.zipfs=ALL-UNNAMED -jar scriptlet4docx-0.8.6.jar

所以我试图在我的终端中运行这个命令,但它不起作用。我也尝试添加 vm 选项,例如 enter image description here

或这里enter image description here 但它们都不起作用......

我在intellij jdk11中使用了默认版本的jdk。

【问题讨论】:

  • 在您的情况下,该库被命名为:If the reflecting code is in a named module, ALL-UNNAMED can be replaced by its name.

标签: java spring-boot exception classloader java-9


【解决方案1】:

实际上post解决方案说你必须用打击的jvm做一个镜像jvm的选项不在intellij而是在gradle中。

所以我在 build.gradle 中添加了这段代码,然后它就可以工作了

tasks.withType(JavaExec) {
    jvmArgs += ['--add-opens', 'java.base/jdk.internal.loader=ALL-UNNAMED']
}

【讨论】:

    猜你喜欢
    • 2020-11-22
    • 2021-09-21
    • 2022-08-23
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 2022-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多