Illegal Reflective Access in Java 9: A Detailed Examination
Java 9 introduced the concept of illegal reflective access,引发了 zahlreichen关于如何解决此错误消息的疑问。本文将深入探讨非法反射访问的本质,触发警报的情况以及可能的解决方案。
Java 9 中的模块系统引入了模块化#放松强封装的概念,这是理解非法反射访问的关键。模块中代码对其他模块代码和可见包的访问受到严格的控制。然而,为了 облегчить переход на Java 9,模块的强封装可以被放松。
runtime系统可以提供以下操作:
非法访问的概念
如果在以下情况下使用反射 API 成功调用,则会触发“非法”的反射访问:
触发警报的机制
Java 9 中封装的放松可以通过新的启动选项 --illegal-access 在编译时进行控制。默认情况下,此选项设置为“允许”。在这种模式下,第一次对任何此类包的反射访问操作将触发警报,但此后不再发出警告。此警告包含有关如何启用进一步警告的信息。
配置选项
--illegal-access 选项可以配置为以下模式:
调试和修复建议
警告消息示例
非法反射访问操作检测到时发出的警告消息遵循以下格式:
WARNING: Illegal reflective access by $PERPETRATOR to $VICTIM
其中:
预防措施
为了避免此类警告并确保将来的安全性,需要确保模块不会进行这些非法反射访问。
以上是如何解决 Java 9 中的'非法反射访问”警告?的详细内容。更多信息请关注PHP中文网其他相关文章!