我有一個可執行 Jar,它使用反射來訪問一些 Java 內部(實際上我正在隱藏一些第三方庫,如 Netty、DNSJava ......)我看到將此條目添加到 Jar 的 MANIFESTAdd-Opens: java.base/sun.net.dns解決了我的第一個問題:WARNING: An illegal reflective access operation has occurredWARNING: 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.ResolverConfigWARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operationsWARNING: All illegal access operations will be denied in a future release但現在我有第二個警告:WARNING: An illegal reflective access operation has occurredWARNING: 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.defaultTimeZoneWARNING: Please consider reporting this to the maintainers of org.postgresql.jdbc.TimestampUtilsWARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operationsWARNING: All illegal access operations will be denied in a future release我需要添加這個新的例外Add-Opens: java.base/java.util我正在嘗試:Add-Opens: java.base/java.util,java.base/sun.net.dnsAdd-Opens: java.base/java.util;java.base/sun.net.dnsAdd-Opens: java.base/java.util:java.base/sun.net.dns沒有結果。我找不到任何關于 Add-Opens 的“規范”
3 回答

吃雞游戲
TA貢獻1829條經驗 獲得超7個贊
JEP 261:模塊系統解釋了如何指定多個模塊/包組合:
定義了兩個新的特定于 JDK 的 JAR 文件清單屬性以對應于 --add-exports 和 --add-opens 命令行選項:
添加導出:
<module>/<package>( <module>/<package>)*
添加打開:
<module>/<package>( <module>/<package>)*
每個屬性的值是一個以空格分隔的列表,由斜杠分隔的模塊名稱/包名稱對組成
強調我的

慕尼黑的夜晚無繁華
TA貢獻1864條經驗 獲得超6個贊
您可以在運行應用程序期間添加多個添加打開。
示例可以幫助:
java --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED -jar test.war
添加回答
舉報
0/150
提交
取消