Solon v3.7.3

问题:jdk 各版本反射权限问题?

</> markdown
2025年12月11日 上午8:14:17

jdk17 - jdk25

如果出现反射权限问题。可在运行时添加jvm参数:--add-opens (取消了 illegal-access 参数)

#示例:
java --add-opens java.base/java.lang=ALL-UNNAMED -jar xxx.jar
#示例:(添加多个 add-opens)
java --add-opens java.base/java.lang=ALL-UNNAMED \
     --add-opens java.base/java.util=ALL-UNNAMED \
     -jar xxx.jar

也可以在编译时添加编译参数(运行时就不用加了):

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <annotationProcessorPaths>
        <compilerArgs>
            <arg>--add-opens</arg>
            <arg>java.base/java.lang=ALL-UNNAMED</arg>
            <arg>--add-opens</arg>
            <arg>java.base/java.util=ALL-UNNAMED</arg>
        </compilerArgs>
    </configuration>
</plugin>

jdk12 - jdk16

如果出现反射权限问题。可添加jvm参数:--illegal-access=permit (默认为 deny )

#示例:
java --illegal-access=permit -jar xxx.jar

jdk9 - jdk11

没有反射权限问题 。默认为 --illegal-access=permit

#示例:
java -jar xxx.jar