最近我切换到Java 11并开始调试我的应用程序并看到以下消息:
OpenJDK 64位服务器VM警告:仅支持引导共享 加载程序类,因为已附加了引导程序类路径
仅发现了this commit和ticket,但是告诉我的并不多。
我需要担心吗?
答案 0 :(得分:6)
在尝试将调试器与Intellij Idea结合使用时,在安装Java12之后遇到了这个问题。我找到的解决方案是进入“设置”并搜索“异步”,然后取消选中“检测代理”框。
答案 1 :(得分:4)
在尝试将调试器与Intellij Idea结合使用时,在安装jdk-12.0.1_windows-x64_bin.zip之后,我也遇到了这个问题,我得到了( Java HotSpot(TM)64位服务器VM警告:引导加载程序类仅支持共享,因为已附加了引导程序类路径)。我也找到了,进入设置并搜索异步,然后取消选中Instrumenting agent框。为我工作正常!
答案 2 :(得分:1)
您可以忽略此警告。这只是意味着对于未由引导类加载器加载的类,将禁用类数据共享。
来自Improve Launch Times […] With Application Class-Data Sharing:
JVM使用引导类加载器加载一些JDK类 其余的使用系统类加载器,但所有这些都包含在 其默认存档。当IntelliJ执行您的项目时,它会告诉 JVM通过附加到引导类加载器来加载一些代码 该类路径(消息的第二部分)。现在,这意味着 包含系统加载的类的档案的一部分 类加载器可能无效,因此JVM部分 停用共享(消息的第一部分)。
您可以完全禁用与-Xshare:off
的类数据共享,但是会损失一些性能。
答案 3 :(得分:0)
对我而言,仅当我在Docker中运行时以及当我使用Java命令行代理(如DataDog APM代理(-javaagent:/dd-java-agent.jar
)时,才出现此问题。
当我在没有代理的情况下在JDK11运行时环境中运行时,我没有收到警告。
答案 4 :(得分:0)
Java版本必须为9或更高版本。
答案 5 :(得分:0)
对于Intellij IDE->“设置/首选项”对话框(Ctrl + Alt + S),转到“构建” |“设置”。执行|部署|调试器异步->取消检查检测代理
答案 6 :(得分:0)
今天,我发现了与您相同的问题。 情况:设置无断点时进行调试 解决方案:单击调试按钮之前,请至少设置一个断点!
答案 7 :(得分:0)
如果不是很重要,您可以更改您的 jdk 版本。我已经从 jdk14 改为 jdk 11。希望它对你有用。
答案 8 :(得分:0)
1.打开偏好选项;
2.找到构建、执行、部署选项;
3.进入Debugger --> Async Stack Traces ;
4.取消勾选检测代理(需要调试器重启);
答案 9 :(得分:0)
遇到了同样的问题,并尝试按照上面写的方法解决它。
但是后来我在不更改设置的情况下得到了另一个问题的解决方案。
在您放置断点并要调试的文件上按鼠标右键。然后选择“调试你的文件名.method()”。
不要使用工具窗口中的调试按钮。问题似乎是 Idea 无法理解您要调试哪个文件。
这对我有用,而无需更改异步设置。
答案 10 :(得分:-4)
您必须将红点放在您将进行调试的代码行的左侧。 如果没有,你会在 IntelliJ 上得到这个按摩