gpt4 book ai didi

java - 在 Java 11 的编译选项中使用 --illegal-access=deny 时出现无效标志错误

转载 作者:行者123 更新时间:2023-12-02 01:42:17 31 4
gpt4 key购买 nike

我试图弄清楚为什么我收到“警告:发生了非法反射访问操作”我想先消除这些警告,然后我想检查它在我的代码中实际发生的位置。因为我已经读过

“对任何此类包的第一个反射访问操作都会导致发出警告,但此后不会发出警告。此​​单个警告描述了如何启用进一步的警告。无法抑制此警告。”

因此,为了获得进一步的警告

所以我在 IntelliJ 中提到了 --illegal-access=deny 和 --add-exports 选项。

<option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="XXX" options="--illegal-access=deny --add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED" />
</option>

然后我得到了 Error:java: error: invalid flag: --illegal-access=deny

这些是警告

WARNING: Illegal reflective access by com.thoughtworks.xstream.core.util.Fields (file:xxx/xxx/xxx/xstream-1.4.10.jar) to field java.util.TreeMap.comparator 
WARNING: Please consider reporting this to the maintainers of com.thoughtworks.xstream.core.util.Fields
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations

最佳答案

反射访问发生在运行时,因此无法在编译时检测到它。如果您想消除警告,可以将命令行选项 --add-opens 添加到您的运行配置中:

--add-opens=java.base/sun.net.www.protocol.http=ALL-UNNAMED

--add-opens 使包 sun.net.www.protocol.http 在运行时可访问,且不会出现警告。

但是,我建议不要使用此选项,而是找出发生这种非法反射访问的原因并尝试消除它。

关于java - 在 Java 11 的编译选项中使用 --illegal-access=deny 时出现无效标志错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54293531/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com