首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java模块访问问题:“模块中的类不能访问未命名模块中的类,因为模块x不读取未命名模块y”

java模块访问问题:“模块中的类不能访问未命名模块中的类,因为模块x不读取未命名模块y”
EN

Stack Overflow用户
提问于 2022-04-25 07:19:46
回答 1查看 928关注 0票数 3

我的源代码在java 7上编译,在java 11上运行。

我正在尝试将imperva RASP集成为tomcat中的java代理。但是,当我启动tomcat服务器时,它将抛出以下异常:

代码语言:javascript
复制
Caused by: java.lang.IllegalAccessError: class sun.security.ec.ECDSASignature (in module jdk.crypto.ec) cannot access class com.imperva.rasp.AgentBridge (in unnamed module @0x66c61024) because module jdk.crypto.ec does not read unnamed module @0x66c61024
        at jdk.crypto.ec/sun.security.ec.ECDSASignature.<init>(ECDSASignature.java:118)
        at jdk.crypto.ec/sun.security.ec.ECDSASignature.<init>(ECDSASignature.java:106)
        at jdk.crypto.ec/sun.security.ec.ECDSASignature$SHA1.<init>(ECDSASignature.java:214)
        at jdk.crypto.ec/sun.security.ec.SunEC$ProviderService.newInstance(SunEC.java:102)
        at java.base/java.security.Signature.isSpi(Signature.java:331)

我传递java代理的方式是:

代码语言:javascript
复制
JAVA_OPTS="-javaagent:$IMPERVA_JAR $JAVA_OPTS"

我浏览了多个帖子,比如 one关于--add-opens参数的文章。基于此,我将传递JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=jdk.crypto.ec/sun.security.ec=ALL-UNNAMED" --我可以在日志中看到以下语句:

代码语言:javascript
复制
Picked up JDK_JAVA_OPTIONS:  --add-opens=jdk.crypto.ec/sun.security.ec=ALL-UNNAMED

我是在这里遗漏了什么,还是在传递的参数中出现了语法错误?

没有进行任何其他配置。

任何帮助都是非常感谢的。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-27 05:07:12

通过使用--add-reads而不是--add-opens来解决这个问题。

JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-reads jdk.crypto.ec=ALL-UNNAMED"

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71995771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档