我进入模块化 Java 已经有几个月的时间了,包括 Spring 和相关的生态系统。最令人沮丧的经历之一是调试名称不明确的模块问题
这是我得到的最后一个此类错误:
java.lang.IllegalAccessError: superclass access check failed: class com.oracle.truffle.polyglot.PolyglotImpl (in unnamed module @0x58a90037) cannot access class org.graalvm.polyglot.impl.AbstractPolyglotImpl (in module org.graalvm.sdk) because module org.graalvm.sdk does not export org.graalvm.polyglot.impl to unnamed module @0x58a90037
@0x58a90037
是这里的问题。
根据我的打算,我会随机尝试spring.beans
, spring.context
,javax.validation
等等……然后向世界开放我的模块,这在某种程度上消除了首先封装它们的价值。
对于这种特定情况,我尝试了效果不好,但是requires org.graalvm.sdk;
requires org.graalvm.js;
做到了。
通过随机尝试进行调试似乎并不是解决这些问题的明智方法。所以我想知道你们是怎么做到的。
谢谢!