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

标签 java spring-boot exception classloader java-9

我有一个异常(exception),如 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-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的默认版本。

最佳答案

事实上,后解决方案说你必须用打击的jvm制作一个镜像jvm的选项不在intellij中,而是在gradle中。

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

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

关于java.lang.reflect.inaccessibleobjectexception 无法使 jdk.internal.loader.classloaders,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61659406/

相关文章:

MySQL/JPA 字段没有默认值错误,即使该字段位于类层次结构中的不同类中

.net - 在 .NET 的方法中拥有但不抛出异常的成本

powershell - 无法在Powershell的try/catch语句中捕获异常

java - 内部 http :inbound-gateway with pollable request channel

java - Tomcat Web 应用程序、Spring 和 Hibernate 的数据源

java - JPA 和 EBean Play 框架之间的区别

java - 迭代和复制HashMap值的有效方法

java - 将 Yaml 中的列表映射到 Spring Boot 中的对象列表

java - Spring 现场服务需要一个类型的 bean

java - Collections.sort() throws 比较方法违反了它的一般约定!异常(exception)