问题介绍
严重:在Tomcat启动期间未能触发gc守护进程线程的创建,以防止可能的内存泄漏。这在非Sun JVM上是预期的。
java.lang.ClassNotFoundException:sun.misc.gc
问题原因
1.由于环境互相不兼容,也就是常说的jdk和Tomcat版本不搭,造成的gc进程线程无法创建
所用环境
系统:Windows10系统
Eclipse:Oxygen.3a Release (4.7.3a).
Tomcat:Apache Tomcat v8.0.
JDK:javase 8.0(jdk1.8)
解决方案
1.改变jdk的版本
https://www.oracle.com/technetwork/java/javase/downloads/index.html
进入该网站下载Oracle官方的JavaSE(jdk),之后为项目替换jre为该jdk中的jre。
具体操作为,右击项目根目录,如下图中根目录则为cha,点击Build Path→Configure Build Path…

点击右侧菜单栏中的Libraries(→Modulepath)→JRE System Libyary[版本号],
选中后单击右侧的Remove清楚当前JRE环境,点击Apply应用当前设置。

再次来到Libyaries→(Modulepath),选择右侧的Add Libyary

在选择类型时选择JRE System Libyary,之后点击Next

在接下来的页面中选中Alternate JRE,之后点击右侧的Installed JREs

选中右侧的Add

选中Standard VM

点击Directory…选择下载的jdk文件的根目录(bin的父级目录),然后点击Finish

此时会回到之前的页面,直接点击Apply and Close.
在更上一级页面中选择新添加的JRE,然后点击Finish

此时JRE已经成功添加,点击Apply and Close结束设置。

重新启动Servers,报错消失了。
Tip:该方案只能解决部分出现此问题的情况,我会继续寻找其他解决方案。
最后更新于2019年4月20日
原创不易,如果该文章对你有所帮助,望左上角点击关注~如有任何技术相关问题,可通过评论联系我讨论,我会在力所能及只能进行相应回复以及开单章解决该问题.
该文章如有任何错误请在评论中指出,感激不尽,转载请附出处!
本文解决在Windows10系统下,使用Eclipse Oxygen与Tomcat v8.0结合Java SE 8时,因环境兼容性问题导致的gc守护进程线程创建失败。通过更换JDK版本并详细指导如何在Eclipse中更改JRE配置,成功解决了内存泄漏风险。

1429

被折叠的 条评论
为什么被折叠?



