最近我转向 Java11并开始调试我的应用程序,看到了这样的信息:
OpenJDK64-BitServerVM 警告: 只有在引导时才支持共享 加载程序类,因为已追加了引导类路径
只找到了 这个承诺和 罚单但没什么线索。
我需要担心吗?
对我来说,只有在运行 Docker 时,以及使用诸如 DataDog APM 代理(-javaagent:/dd-java-agent.jar)之类的 java 命令行代理时,才会出现这个问题。 当我运行我的 JDk11执行期函式库(没有代理)时,我没有得到警告。
-javaagent:/dd-java-agent.jar
我在安装 Java12之后遇到了这个问题,当时我试图用 Intellij Ideas 来调试这个调试器。我找到的解决方案是进入设置和搜索异步并取消检测代理框。
在安装 jdk-12.0.1_windows-x64_bin.zip之后,我在尝试使用 IntelliJIDEA 调试器时也遇到了这个问题。我得到了一个错误的(JavaHotSpot (TM)64-BitServerVM 警告: 共享仅支持引导加载程序类,因为已附加了引导类路径)。我还发现,进入设置和搜索异步,并取消检测代理框。对我有用!
jdk-12.0.1_windows-x64_bin.zip
您可以忽略这个警告。这只是意味着对于没有由引导类装入器装入的类禁用类数据共享。
来自 通过应用类数据共享提高启动时间[ ... ]:
JVM 用引导类装入器装入一些 JDK 类 以及其余部分与系统类装入器一起使用,但是将它们全部包含在 当 IntelliJ 执行项目时,它告诉 附加到。 JVM 用引导类加载器加载一些代码 类路径(消息的第二部分) 包含由系统加载的类的归档文件的一部分 类装入器可能会失效,因此 JVM 部分失效 停用共享(消息的第一部分)。
您可以使用 -Xshare:off完全禁用类数据共享,但是您会失去一些性能。
-Xshare:off
Java 版本必须是9或更高版本。
对于 Intellij IDE-> Settings/Preferences 对话框(Ctrl + Alt + S) ,转到 Build | Execution | Deployment | Debugger | Async-> uncheck 径检测代理
今天我发现了和你一样的问题。 情况: 在没有设置断点的情况下进行调试 解决方案: 在单击调试按钮之前至少设置一个断点!
如果它不是关键的,您可以更改您的 jdk 版本。我从 JDK14变成了 JDK11。希望对你有用。
1. 开启 偏好选项;
2. 查找 构建,执行,部署选项;
3. 输入 调试器—— > 异步堆栈跟踪;
4. 取消选中 检测代理(需要重新启动调试器);
请看这个 详细资料。
你必须把红点放在代码行的左边,你将进行调试。 如果没有你得到这个按摩的 IntelliJ
遇到了同样的问题,并试图解决它,正如上面所写的。
但后来我得到了另一个解决方案的问题,没有改变设置。
按鼠标右键在您的文件中,您放置断点,并要调试。然后选择“调试 Ur file name.method ()”。
不要使用工具窗口中的调试按钮。看起来问题在于 Ideas 无法理解你想要调试哪个文件。
这在不改变异步设置的情况下对我有效。
截图
得到了相同的问题,并试图解决这样写的所有上述方法。
但是,我仍然无法调试我的文件的唯一原因是,在调试你的程序之前,你需要设置调试点,直到我们想要调试。所以只要点击图中显示的位置并设置调试点,我们的程序就可以很容易地进行调试。什么都不做。在此输入图像描述
考虑到 IntelliJ 中的这个警告是无害的(参见 https://stackoverflow.com/a/57957031/779173) ,您可以通过右键单击该行并选择“ Fold Lines Like This”来从 Console 视图中隐藏该行
做完这些,你就会看到:
"C:\Program Files\Java\jdk-17.0.2\bin\java.exe" ... <1 internal line>