java.lang.reflect.inaccessibleobjectexception无法使jdk.internal.loader.classloaders

2024-01-02

我有一个例外java.lang.reflect.InaccessibleObjectException:无法使 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-从这里打开 java.base/java.lang=ALL-UNNAMED如何解决 Java 9 上的 InaccessibleObjectException(“无法使 {member} 可访问:模块 {A} 不会向 {B} '打开 {package}'”)? https://stackoverflow.com/questions/41265266/how-to-solve-inaccessibleobjectexception-unable-to-make-member-accessible-m/41265267
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 选项,例如在此输入图像描述 https://i.stack.imgur.com/LO5IM.png

or here 在此输入图像描述 https://i.stack.imgur.com/j4cYr.png但两者都不起作用...

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


事实上,帖子解决方案说你必须使用jvm制作镜像,jvm的选项不在intellij中,而是在gradle中。

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

tasks.withType(JavaExec) {
    jvmArgs += ['--add-opens', 'java.base/jdk.internal.loader=ALL-UNNAMED']
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java.lang.reflect.inaccessibleobjectexception无法使jdk.internal.loader.classloaders 的相关文章

随机推荐