当前位置: 首页 > 知识库问答 >
问题:

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

柯瀚海
2023-03-14

最近我切换到Java11并开始调试我的应用程序,看到了这条消息:

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

只找到了这份promise和罚单,但它并没有告诉我多少。

我需要担心吗?

共有2个答案

岳宣
2023-03-14

你可以忽略这个警告。这只是意味着,对于引导类加载器未加载的类,类数据共享被禁用。

通过应用程序级数据共享提高启动时间[…]:

JVM使用引导类加载器加载一些JDK类,使用系统类加载器加载其余的类,但将所有类都包含在其默认归档中。当IntelliJ执行您的项目时,它会告诉JVM通过附加到引导类加载器的类路径(消息的第二部分)来加载一些代码。现在,这意味着包含系统类加载器加载的类的归档部分可能会失效,因此JVM会部分停用共享(消息的第一部分)。

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

百里胜泫
2023-03-14

在安装Java12之后,我在尝试使用Intellij Idea的调试器时遇到了这个问题。我找到的解决方案是设置并搜索async,然后取消选中Instrumenting agent框。

 类似资料:
  • 尝试调试代码时收到的错误消息 Java HotSpot(TM)64位服务器虚拟机警告:共享仅支持引导加载程序类,因为已附加引导类路径“ 这意味着什么,我为什么要得到它,如何摆脱它?

  • 问题内容: 在运行于Java 8的应用程序中,我正在使用将jar添加到引导类路径的方法。在Java 9中,该选项已删除。在Java 9中执行相同操作的替代方法是什么? 问题答案: 您可以使用。请参考发行说明,其中指出: 在此版本中,引导类路径已被大部分删除。Java 和选项已被删除。 仅当编译到JDK 8或更早版本时,才可以使用该选项。系统属性已被删除。 出于测试目的而依赖于覆盖平台类的部署将需要

  • 附录 B 引导加载器(boot loader) 当 x86 PC 启动时,它执行的是一个叫 BIOS 的程序。BIOS 存放在非易失存储器中,BIOS 的作用是在启动时进行硬件的准备工作,接着把控制权交给操作系统。具体来说,BIOS 会把控制权交给从引导扇区(用于引导的磁盘的第一个512字节的数据区)加载的代码。引导扇区中包含引导加载器——负责内核加载到内存中。BIOS 会把引导扇区加载到内存 0

  • 问题内容: 我在win10-64上重新安装了Python37-32,似乎满足了所有要求,并且我的hello world python文件正在执行 但是当我尝试使用pyinstaller时 它以错误结束 这是Windows上的基本安装,我不必手动重新编译任何引导加载程序(我习惯于使用较旧的python版本进行pyinstaller,并且从未遇到过问题)。我应该在哪里解决这个问题? 编辑 错误显示在p

  • 我正在使用最新版本的spring boot和spring cloud config。当我用应用程序启动应用程序时。属性,它工作正常。但是,当我从引导开始时。yml文件,它从Spring cloud下载所有道具,并加载应用程序。类路径中的属性。Spring的云就是这样运作的吗?是否可以将Spring云配置客户端配置为仅从远程云配置而不是从应用程序读取属性。类路径中的属性。 我正在使用, --Spri

  • 我要的是这种行为: 当然,当我打印时真正发生的是: 显然,它们在类中共享数据。我如何获得单独的实例来实现我想要的行为?