在使用 Java 11 进行调试期间,如何避免“仅支持引导加载程序类共享,因为已附加引导类路径”警告?

2022-08-31 07:42:45

最近我切换到Java 11并开始调试我的应用程序,并看到以下消息:

OpenJDK 64 位服务器 VM 警告:仅支持引导加载程序类共享,因为已附加引导类路径

只找到这个提交票证,但它并没有告诉我太多。

我需要担心吗?


答案 1

在尝试将调试器与IntelliJ IDEA一起使用时,我在安装后也遇到了此问题。我收到错误(Java HotSpot(TM) 64 位服务器虚拟机警告:仅支持引导加载程序类共享,因为已附加引导类路径)。我也发现,进入设置并搜索异步并取消选中“检测代理”框。为我工作!jdk-12.0.1_windows-x64_bin.zipASYNC settings


答案 2

您可以忽略此警告。它只是意味着对未由引导类装入器装入的类禁用类数据共享。

改善发布时间 [...]使用应用程序类数据共享

JVM 使用引导类装入器装入一些 JDK 类,而使用系统类装入器装入其余类,但将它们全部包含在其缺省归档中。当 IntelliJ 执行项目时,它会告诉 JVM 通过附加到引导类路径(消息的第二部分)来使用引导类装入器加载一些代码。现在,这意味着包含由系统类装入器装入的类的归档文件部分可能无效,因此 JVM 部分停用了共享(消息的第一部分)。

您可以使用 完全禁用类数据共享,但会损失一些性能。-Xshare:off


推荐