目前我正在开发一个使用 repast java 库(repast.jar、colt.jar 和 trove.jar)的 java 项目。该项目适用于 jdk-11,但目前,我正在尝试迁移到 jdk-17,但由于下一个异常,我无法运行该项目:
Exception in thread "main" java.lang.IllegalAccessError: class com.go.trove.classfile.AccessFlags tried to access private method 'void java.lang.reflect.Modifier.<init>()' (com.go.trove.classfile.AccessFlags is in unnamed module of loader 'app'; java.lang.reflect.Modifier is in module java.base of loader 'bootstrap')
at com.go.trove.classfile.AccessFlags.<init>(AccessFlags.java:75)
at com.go.trove.classfile.ClassFile.<init>(ClassFile.java:160)
at com.go.trove.classfile.ClassFile.<init>(ClassFile.java:138)
at uchicago.src.sim.util.ByteCodeBuilder.generateBasicAction(Unknown Source)
at uchicago.src.sim.engine.ActionUtilities.createActionFor(Unknown Source)
at uchicago.src.sim.engine.ScheduleBase.scheduleActionBeginning(Unknown Source)
at uchicago.src.sim.engine.ScheduleBase.scheduleActionBeginning(Unknown Source)
我记得读到在最近的 Java 版本中,反射 API 发生了一些变化。这会是一个可能的原因吗?
知道如何解决它吗?这很难解决吗?
非常感谢!