问题:jdk 各版本反射权限问题?
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