Enr*_*lli 11 java java-platform-module-system
我有一个可执行的 Jar,它使用反射来访问一些 java 内部(实际上我正在着色一些第三方库,如 Netty、DNSJava...)
我看到将此条目添加到 Jar 的 MANIFEST 中
Add-Opens: java.base/sun.net.dns
Run Code Online (Sandbox Code Playgroud)
解决了我的第一个问题:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.xbill.DNS.ResolverConfig (file:/home/diennea.lan/enrico.olivelli/dev/magnews/magnews.installer/target/magnews-24.05-SNAPSHOT.dev-b199bacf8f2-noci-installer.jar) to method sun.net.dns.ResolverConfiguration.open()
WARNING: Please consider reporting this to the maintainers of org.xbill.DNS.ResolverConfig
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Run Code Online (Sandbox Code Playgroud)
但现在我有第二个警告:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.postgresql.jdbc.TimestampUtils (file:/home/diennea.lan/enrico.olivelli/dev/magnews/magnews.installer/target/example/.tmpPackage/packages/postgresql.jar) to field java.util.TimeZone.defaultTimeZone
WARNING: Please consider reporting this to the maintainers of org.postgresql.jdbc.TimestampUtils
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Run Code Online (Sandbox Code Playgroud)
我需要添加这个新的例外
Add-Opens: java.base/java.util
Run Code Online (Sandbox Code Playgroud)
我正在尝试:
Add-Opens: java.base/java.util,java.base/sun.net.dns
Add-Opens: java.base/java.util;java.base/sun.net.dns
Add-Opens: java.base/java.util:java.base/sun.net.dns
Run Code Online (Sandbox Code Playgroud)
没有结果。我找不到任何有关 Add-Opens 的“规范”
A24*_*248 11
JEP 261:模块系统解释了如何指定多个模块/包组合:
定义了两个新的 JDK 特定 JAR 文件清单属性,以对应于 --add-exports 和 --add-opens 命令行选项:
添加导出:
<module>/<package>( <module>/<package>)*添加打开:
<module>/<package>( <module>/<package>)*每个属性的值是以空格分隔的斜杠分隔的模块名称/包名称对的列表
例如,
Add-Opens: java.base/java.util java.base/sun.net.dns
Run Code Online (Sandbox Code Playgroud)
小智 9
您可以在运行应用程序期间添加多个添加打开。
示例可以帮助:
java --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED -jar test.war
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8056 次 |
| 最近记录: |