代码之家  ›  专栏  ›  技术社区  ›  Dmitriy Dumanskiy

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

  •  3
  • Dmitriy Dumanskiy  · 技术社区  · 7 年前

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

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

    只找到 this commit ticket ,但它没有告诉我多少。

    我需要担心吗?

    0 回复  |  直到 7 年前
        1
  •  167
  •   Sae1962    6 年前

    安装后我也遇到了这个问题 jdk-12.0.1_windows-x64_bin.zip 尝试使用IntelliJ IDEA的调试器时。我犯了一个错误( Java HotSpot(TM)64位服务器虚拟机警告:共享仅支持引导加载程序类,因为已附加引导类路径 ).我也发现,进入设置并搜索async,然后取消选中Instrumenting agent框。为我工作! ASYNC settings

        2
  •  18
  •   Zachary Daniel Ruffner    7 年前

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

        3
  •  17
  •   Martin    5 年前

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

    从…起 Improve Launch Times […] With Application Class-Data Sharing :

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

    您可以使用完全禁用类数据共享 -Xshare:off ,但你会失去一些表现。

        4
  •  8
  •   JJ Zabkar    7 年前

    对我来说,只有当我在Docker中运行时,以及当我使用像DataDog APM代理这样的java命令行代理时,问题才会出现( -javaagent:/dd-java-agent.jar ). 当我在JDK11运行时环境(没有代理)中运行时,我没有收到警告。

        5
  •  5
  •   mustafa günel    6 年前

        6
  •  2
  •   assylias    4 年前

    Operation guide

    1.打开 偏好 选项

    2.找到 构建、执行、部署 选项

    3.输入 调试器-->异步堆栈跟踪 ;

    4.取消选中 检测代理(需要重新启动调试器) ;


    请看这个 for detailed information .

        7
  •  0
  •   Ascar    5 年前

    如果不重要,您可以更改jdk版本。我已经从jdk14改为jdk 11。希望对你有用。

        8
  •  0
  •   listenuptome    5 年前

    遇到了同样的问题,并试图解决上面写的问题。

    但后来我在不改变设置的情况下得到了问题的另一个解决方案。

    在文件上按鼠标右键放置断点并进行调试。然后选择“调试” 你的文件名。方法() ".

    不要使用“工具”窗口中的“调试”按钮。问题似乎是Idea无法理解要调试的文件。

    这在不更改异步设置的情况下对我有效。

    Screenshot

        9
  •  0
  •   Shubham Chandra Mishra    4 年前

    得到了同样的问题,并试图解决它,因为写了所有上述方法。

    但是,我仍然无法调试我的文件唯一的原因是,在调试程序之前,您需要设置调试点,直到我们想要调试的点。所以只要点击图中所示的位置并设置调试点,我们的程序就可以轻松调试。什么都不做。 enter image description here

        10
  •  -4
  •   4b0 Agit    6 年前

    Java版本必须为9或更高版本。

    enter image description here

        11
  •  -4
  •   Arthur Rees    5 年前

    今天我发现了和你一样的问题。 情况:调试时不设置断点 解决方案:在单击调试按钮之前至少设置一个断点!

        12
  •  -4
  •   OmerK    5 年前

    你必须把红点放在你要调试的代码行的左边。 如果不是的话,你可以在IntelliJ上进行按摩