最近,我切换到Java 11并开始调试应用程序,并看到以下消息:
OpenJDK 64位服务器VM警告:共享仅受引导加载程序类支持,因为已附加了引导程序类路径
我需要担心吗?
Answers:
尝试将调试器与Intellij Idea结合使用时,在安装Java12后出现了此问题。我找到的解决方案是进入“设置”并搜索“异步”,然后取消选中“仪表代理”框。
您可以忽略此警告。这仅表示对于未由引导类加载器加载的类禁用了类数据共享。
JVM使用引导类加载器加载一些JDK类,其余部分使用系统类加载器加载,但所有这些都包含在其默认归档文件中。当IntelliJ执行您的项目时,它告诉JVM通过附加到该类路径(消息的第二部分),使用引导类加载器加载一些代码。现在,这意味着包含系统类加载器加载的类的存档部分可能无效,因此JVM会部分停用共享(消息的第一部分)。
您可以使用完全禁用类数据共享-Xshare:off
,但是会损失一些性能。