An illegal reflective access operation has occurred问题记录

报错

2023-11-30T01:08:18.744+0800 [ERROR] [system.err] WARNING: An illegal reflective access operation has occurred
2023-11-30T01:08:18.745+0800 [ERROR] [system.err] WARNING: Illegal reflective access by com.intellij.ui.JreHiDpiUtil to method sun.java2d.SunGraphicsEnvironment.isUIScaleEnabled()
2023-11-30T01:08:18.745+0800 [ERROR] [system.err] WARNING: Please consider reporting this to the maintainers of com.intellij.ui.JreHiDpiUtil
2023-11-30T01:08:18.745+0800 [ERROR] [system.err] WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
2023-11-30T01:08:18.745+0800 [ERROR] [system.err] WARNING: All illegal access operations will be denied in a future release
2023-11-30T01:08:19.394+0800 [ERROR] [system.err] 2023-11-30 01:08:19,393 [    795]   WARN - j.internal.DebugAttachDetector - Unable to start DebugAttachDetector, please add `--add-exports java.base/jdk.internal.vm=ALL-UNNAMED` to VM options 

环境

jdk azul-13.0.14
org.jetbrains.intellij 1.5.2
gradle 7.4.2

解决

Illegal reflective access by com.intellij.ui.JreHiDpiUtil to method sun.java2d.SunGraphicsEnvironment.isUIScaleEnabled()
意思是在JreHiDpiUtil 类中非法使用了反射访问SunGraphicsEnvironment.isUIScaleEnabled()方法

类似的还有
Illegal reflective access by com.intellij.ide.ui.laf.darcula.DarculaLaf to field javax.swing.text.html.HTMLEditorKit.DEFAULT_STYLES_KEY

要么更换包要么只能接收这个警告

可以使用jvm参数查看更加详细的信息
--illegal-access=debug --add-opens java.base/java.lang=ALL-UNNAMED
如果不想所有的配置都添加这个参数可以在自定义vm惨出生中添加
在这里插入图片描述

其实这是 JDK9 中添加的新特性,即 reflect 不再可以访问 non-public 成员以及不可公开访问的 class,原先这些访问控制虽然存在但是可以通过 reflect 绕过,从 JDK9 开始反射也将遵循访问控制的规则。JDK9 中对于第一次访问非公开成员的操作会显示警告信息,我们可以通过使用–illegal-access=warn选项进一步显示出有用的 warning 提示

参考链接

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岁月玲珑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值