Illegal Reflective Access in Java 9: A Detailed Examination
Java 9 introduced the concept of illegal reflective access, which triggered zahlreichen on how to solve it Questions about this error message. This article will delve into the nature of illegal reflective access, the circumstances that trigger alerts, and possible solutions.
The module system in Java 9 introduces the concept of modularity#relaxing strong encapsulation, which is the key to understanding illegal reflective access. Access by code in a module to other module code and visible packages is strictly controlled. However, for облегчить переход на Java 9, the strong encapsulation of modules can be relaxed.
The runtime system can provide the following operations:
The concept of illegal access
If the reflection API is successfully called under the following circumstances, "illegal" reflection access will be triggered:
Mechanism for triggering alerts
Relaxation of encapsulation in Java 9 can be controlled at compile time via the new startup option --illegal-access. By default, this option is set to Allow. In this mode, the first reflected access operation to any such package will trigger an alert, but no further warnings will be issued. This warning contains information on how to enable further warnings.
Configuration options
The --illegal-access option can be configured in the following modes:
Debugging and Repair Recommendations
Warning message example
A warning message that is emitted when an illegal reflective access operation is detected follows the following format:
WARNING: Illegal reflective access by $PERPETRATOR to $VICTIM
where:
Precautions
To avoid such warnings and ensure future security, you need to ensure that modules do not make these illegal reflective accesses.
The above is the detailed content of How Can I Resolve 'Illegal Reflective Access' Warnings in Java 9?. For more information, please follow other related articles on the PHP Chinese website!