java defunct_java defunct产生的原因和解决办法

java defunct_java defunct产生的原因和解决办法javadefunct 产生的原因和解决办法 在很多时候 我们启动 JAVA 进程后 如果退出这个 JAVA 进程 在系统进程中仍然可以看到这个进程 这种情况一般出现在 UNIX linux 系统 对于 WIN 平台出现情况较少 这个进程在 UNIX 平台上 你即使 kill 进程号也不能杀掉它 但它仍然占用系统资源 成了真正的 僵尸 http www gaodaima com 41483 htmljavadef

java defunct产生的原因和解决办法:

在很多时候,我们启动JAVA进程后,如果退出这个JAVA进程,在系统进程中仍然可以看到这个进程.

这种情况一般出现在UNIX/linux系统,对于WIN平台出现情况较少.

这个进程在UNIX平台上,你即使kill进程号也不能杀掉它,但它仍然占用系统资源,成了真正的”僵尸”。

http://www.gaodaima.com/41483.htmljava defunct产生的原因和解决办法

产生的原因:

以前我们下载JDK时,可以下载到JDK的SRC然后自己编译,现在的官方网站上已经找不到可以自己编

译的JDK包,下载回来的JDK都是释放包,我们可以想象,无论SUN在发布JDK时考虑得如何完美,本地

库都不可能完全和当前系统的版本号完全一致。举个例子,假如System.gc()调用了本地库glic6.0.2.so

那么在当前系统上没有这个版本的库或没有这个版本的库的链结,那么gc()方法肯定不能正确工作。

当然sun在发布的时候可能会把这个本地库打包在JDK发行包中,但glic6.0.2.so中又调用了其它库,如

subglic6.0.21.so,即使系统中存在完全相同的glic6.0.2.so,但你无法确认它调用的库又完全匹配,

事实上这几乎是不可能完全匹配的。

正是这样本地库版本号的不一致,才使得需要调用本地库的jvm底层功能不能正确工作,所以清除,

退出进程等工作就可能无法完成,产生了java defunct。

知道了问题的原因,就能从多方面解决了。如果我们的JDK的src版进行编译安装而不是用SUN提供好的

本地库,当然不会存在上面的问题,但现在好象已经不提供src编译安装的发布包了,所以指定内核版本

号,以便使它和JDK发布时使用的版本相一致,可以基本解决java defunct。

假如你不知道当前JDK的本地库是基于什么内核版本号发布的,一般来说,应该提供系统当前的内核版本号:

在Linux下,先查看当前的内核版本:

uname -r

2.4.21-4.EL

把主版本号COPY下来,调用:

LD_ASSUME_KERNEL=2.4.21-4

export LD_ASSUME_KERNEL

如果你知道某个版本的JDK中的本地库是基于某个内核版本发而布的那你可以直接指定LD_ASSUME_KERNEL为

这个版本,这样会获得最大的一致性

欢迎大家阅读《java defunct产生的原因和解决办法》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码

e7ce419cf2d6ad34d01da2ceb8829eed.png

微信 赏一包辣条吧~

023a57327877fb4402bcc76911ec18ea.png

支付宝 赏一听可乐吧~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220458.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午8:26
下一篇 2026年3月17日 下午8:26


相关推荐

  • qt tabwidget样式_qt tablewidget使用

    qt tabwidget样式_qt tablewidget使用QTabWidget::pane{border-top:2pxsolid;border-color:#f5f5f5;}QTabBar::tab{min-width:200px;min-height:25px;color:#333333;font:17px”MicrosoftYaHei”;border:0pxsolid;}QTabB…

    2026年2月25日
    5
  • fastclick安装使用

    fastclick安装使用$npminstallfastclick–saveimportfastClickfrom’fastclick’fastClick.attach(document.body)

    2022年6月19日
    36
  • hadoop提交作业到云端问题解决

    hadoop提交作业到云端问题解决问题描述 当按照 Hadoop 实战上讲述的用 eclipse 提交作业 其实作业是运行在 eclipse 虚拟的一个云环境中 而不是真正提交到 Hadoop 云端运行 在 50030 上也看不到 job 的运行记录 此时的代码如下 packagecom spork hadoop jobutil test importjava io File importjava io IOExc

    2026年3月19日
    2
  • Repeater嵌套DataList

    Repeater嵌套DataList<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="RepeaterDemo.aspx.cs"Inherits="OldbSiteMapProviderDemo.RepeaterDemo"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitiona

    2022年7月14日
    29
  • J2me开发大致框架「建议收藏」

    J2me开发大致框架「建议收藏」J2me开发名目繁多.但大致框架还算有规律可寻,我根据开发经验给大家提点意见,做下总结:游戏的结构很多,不过基本上都是在一个游戏主循环内实现。程序里面的主循环包含了程序框架的最主要的结构体。J2me的程序一般都包含两个class文件,一个是MIDlet,一个是Displayable。一般我都是把游戏的主要代码放在Displayable这个类里面。这个类是基

    2022年7月27日
    8
  • 百度文心一言API-Python版(完整代码)

    百度文心一言API-Python版(完整代码)

    2026年3月12日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号