java.lang.reflect.inaccessibleobjectexception无法使jdk.internal.loader.classloaders成为现实。

问题描述 投票:-1回答:1

我有一个例外,如 java.lang.reflect.InaccessibleObjectException.Jdk.internal.Loader.ClassLoaders$AppClassLoader(jdk.internal.Loader.ClassLoaders$PlatformClassLoader,jdk.internal.Loader.ClassLoaders$PlatformClassLoader)。无法使jdk.internal.loader.ClassLoaders$AppClassLoader(jdk.internal.loader.ClassLoaders$PlatformClassLoader,jdk.internal.loader.URLClassPath)可访问:模块java.base没有向未命名模块 "打开jdk.internal.loader"@45f08579。 在我使用图书馆后 编译组:'com.github.snowindy', name:'scriptlet4docx', version:'0.8.6'

我找到了一些解决方案,比如 1. java --add-opens java.basejava.lang=ALL-UNNAMED from here 如何在Java 9上解决InaccessibleObjectException("无法使{member}被访问:模块{A}没有'打开{package}'到{B}")? 2.java --add-opens java.basejdk.internal.loader=ALL-UNNAMED --add-opens jdk.zipfsjdk.nio.zipfs=ALL-UNNAMED -jar scriptlet4docx-0.8.6.jar。

我试着在我的终端上运行这个命令,但它不工作。而且我还试着添加vm选项,如 请在此输入图片描述

或这里 请在此输入图片描述但两个都不行......

我使用的是intellij jdk11的默认版本的jdk。

java spring-boot exception classloader java-9
1个回答
0
投票

其实帖子里说你必须用吹的jvm做一个镜像,jvm这个选项不是在intellij里,而是在gradle里。

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

tasks.withType(JavaExec) {
    jvmArgs += ['--add-opens', 'java.base/jdk.internal.loader=ALL-UNNAMED']
}
© www.soinside.com 2019 - 2024. All rights reserved.