取消Async Stack Traces无法解决Sharing is only supported for boot loader classes时的解决方法

这篇具有很好参考价值的文章主要介绍了取消Async Stack Traces无法解决Sharing is only supported for boot loader classes时的解决方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.目前可以搜到的主流解决方法(亲测自己用不好使版)

报错问题:

取消Async Stack Traces无法解决Sharing is only supported for boot loader classes时的解决方法,java,spring,maven,intellij-idea,mybatis

搜到的解决方法(不能用版):

取消Async Stack Traces无法解决Sharing is only supported for boot loader classes时的解决方法,java,spring,maven,intellij-idea,mybatis

目前网上大多数解决方法都是说取消idea中此处的勾选,但是我在这里取消勾选后,警告仍然存在。于是接下来通过不断的查资料对这个警告也有了一定的认识,看到这里,没耐心的小伙伴可以先行退出,因为这个警告完全可以不解决。接下来将介绍这个警告出现的原因及强迫症的解决方法

2.Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended出现的原因

此警告的翻译:

取消Async Stack Traces无法解决Sharing is only supported for boot loader classes时的解决方法,java,spring,maven,intellij-idea,mybatis

警告原因:

Java HotSpot(TM) 64-Bit Server VM 发出这个警告的原因是因为当前应用程序在加载类时使用了 ClassLoader 的共享机制,但是共享只支持引导加载程序类。但是JVM 试图将一些系统类库(例如 rt.jar、charsets.jar 等)加载到共享内存中,但这些类库并不符合共享内存的要求,从而导致警告。

解决办法:

懒人版

Java虚拟机(JVM)会在启动时加载并使用系统类库,这些类库包括rt.jar、charsets.jar等。如果 JVM 无法将这些系统类库加载到共享内存中,它会按照非共享内存的方式单独加载这些类库,这不会对应用程序产生任何影响,但会导致 "Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended" 这个警告。这个警告也并不会影响测试类的运行结果(题主这里时这样的)。所以这个警告时可以直接忽略的。懒人解决方法就是直接忽略(我推荐,因为我懒,并且众所周知,程序能跑起来且结果正确就不用动了)。

强迫症版:

当然了,会有一些小伙伴不能接受自己的运行结果中存在这一个鲜红的警告:

经过好长时间的百度,只能确定想要彻底消除警告需要禁止启动优化,不过这里试了好多方法都没实现,要是有哪位小伙伴找到了拜托在评论区评论一下,让我学习一下。

取消Async Stack Traces无法解决Sharing is only supported for boot loader classes时的解决方法,java,spring,maven,intellij-idea,mybatis

一下内容转载自gpt(仅供参考版);

实际上,在默认情况下,JVM会自动将某些系统类库加载到共享内存中。如果出现 "Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended" 这个警告,说明在这种情况下,某些类库不符合共享内存的要求,无法使用共享内存来加载。

通常情况下,如果您想将自己编写的类库放入共享内存中加载,可以通过修改 JVM 启动参数来实现。例如,可以使用 -Xshare:off 参数关闭共享内存的支持,或者使用 -Xshare:on 参数开启共享内存的支持并指定共享库的名字,也可以使用 -Xshare:auto 参数让 JVM 自动确定是否使用共享内存。

但是,请注意,对于 JDK 提供的系统类库,不建议手动修改 JVM 启动参数来强制将它们加载到共享内存中。因为这些类库已经经过优化,对于绝大多数应用来说,它们已经足够快了,并没有必要再进行额外的优化。

总之,如果出现 "Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended" 这个警告,您可以尝试使用 -Xshare:off 参数关闭共享内存的支持,从而避免这个警告。但需要注意的是,在绝大多数情况下,这个警告并不会对应用程序产生实质性的影响,可以忽略它。

个人总结:

如果这个警告不影响目前程序中测试类的运行,那就大胆忽略吧,以为我这里在试图取消这个警告的警告的时候曾一度令测试类无法运行。

取消Async Stack Traces无法解决Sharing is only supported for boot loader classes时的解决方法,java,spring,maven,intellij-idea,mybatis文章来源地址https://www.toymoban.com/news/detail-757828.html

到了这里,关于取消Async Stack Traces无法解决Sharing is only supported for boot loader classes时的解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包