首页 > 其他分享 >解决 jdk9 及以后的 非法反射 警告

解决 jdk9 及以后的 非法反射 警告

时间:2022-10-30 15:12:09浏览次数:47  
标签:反射 java jdk -- Unsafe 非法 jdk9 警告

前言

我的 jdk 是 11 版的,因此经常会看见如下图所示的警告
image
很多广泛使用的库都有这种 非法反射 的问题,看起来特别难受,这里给出两种解决方案

1. JVM 参数

--illegal-access=deny --add-opens java.base/java.lang=ALL-UNNAMED 复制并粘贴到 idea 的项目启动参数中,如图
image
image

这里特别要注意,不是 程序实参,不要搞错了,不然没有效果的
修改完毕后,重新运行就可以看到效果了,如图
image

2. Unsafe

大致思路就是使用 Unsafe 类修改 jdk.internal.module.IllegalAccessLogger#logger 对象, 使其为 null,从而不输出这些警告消息,参考下图
image
image
但,这样只是 治标不治本,在 jdk17 或更高版本的 jdk 中应该会出现奇怪的错误,而且使用Unsafe 也需要特殊的编译器参数

标签:反射,java,jdk,--,Unsafe,非法,jdk9,警告
From: https://www.cnblogs.com/Hakurei-Reimu-Zh/p/16841339.html

相关文章

  • 使用Expression代替反射读取IDataReader或IDataRecord给实体类赋值
    ExpressionMapper代码usingSystem;usingSystem.Collections.Concurrent;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.Data.Common;usingSystem.Li......
  • 使用泛型和反射实现一个简单的ORM框架
    什么是ORM框架?ORM框架是连接数据库与实体类帮助程序对接数据库的框架,类似于三层架构的数据访问层,但ORM框架可以根据数据库生成实体类,或者根据实体类生成数据库,解决了......
  • 菲涅尔反射 Fresnel Reflectance
    入射光射到平面上后会被分为反射和折射两个部分,反射向量\(\mathbf{r}_i\)和入射向量\(\mathbf{l}\)关于法线\(\mathbf{n}\)有相同的夹角\(\theta_i\),反射向量\(\ma......
  • C# 反射动态判断转换属性类型值生成类实例
    ///<summary>///为指定对象分配参数///</summary>///<typeparamname="T">待赋值的类型</typeparam>///<paramname="dic">字段/值</param>/......
  • JavaWEB06--book02--利用反射合并 LoginServlet 和 RegistServlet 程序为 UserServlet
    ​​项目源码​​合并LoginServlet和RegistServlet程序为UserServlet程序优化一:使用​​if-else​​优化代码二:使用​​反射​​优化大量elseif代码:protectedvo......
  • Java反射
    Java反射作用原理:反射机制在运行时,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意个对象,都能够调用它的任意一个方法,在Java中,只要给定类的名字,就可以通过反射......
  • 反射Reflection
    1.1简介反射是框架设计的灵魂将类的各个组成部分封装为其他对象Source源代码阶段->Class类对象阶段->Runtime运行时阶段1.2获取Class对象Class.forName("全类名......
  • 一次服务器非法重启后导致的故障排查记录
    作者:JackTian来源:公众号「杰哥的IT之旅」ID:Jake_Internet大家好,我是杰哥。前段时间遇到一个服务器问题:非法重启设备后,服务器进入救援模式,数据盘也不显示挂载是否成功......
  • 图的连通性,注意非法下标的处理情况
    题目描述给定一个m行n列的二维地图,初始化每个单元都是水.操作addLand把单元格(row,col)变成陆地.岛屿定义为一系列相连的被水单元包围的陆地单元,横向或纵向相邻的陆地......
  • 笔记(反射)
      第一个:  这个是将字符串转成json;第二个:  这个吧,emmm,就是将类转成class对象(这样子说应该正确吧?)第三个:  这个就是利用类来创建对象啦,就和利用无参构......