VirtualMachine.list()返回空的列表

Nick_Dong 发布于 2013/11/26 17:37
阅读 1K+
收藏 0

环境: tomcat 7. JDK1.6.

目标:获取正在运行的jvm列表

尝试代码:

for (int i=0; i<VirtualMachine.list().size(); i++) {
    VirtualMachineDescriptor vi = VirtualMachine.list().get(i);
    System.out.println("**PID :"+vi.id()+" **DISPLAYNAME:"+vi.displayName());
}
在eclipse中可以得到正常的结果,但是打成war包在tomcat的webapas下就不行了,返回空的列表。tomcat和jdk都是同一个,是怎么回事呢?大家有什么想法吗?

加载中
0
Nick_Dong
Nick_Dong
删除catalina.sh 或者 catalina.bat 中的所有-Djava.io.tmpdir配置项,原因不详
0
Sub
Sub
应该需要把 tools.jar 加入到 classpath 下面, eclipse 已经自动帮你加了。
Nick_Dong
Nick_Dong
http://bbs.csdn.net/topics/390655110 已解决。
Nick_Dong
Nick_Dong
系统的classpath也加上了,还是不行
Nick_Dong
Nick_Dong
eclipse也没自动加,我手动拷到WEB_INF/lib下的。没tools.jar会报错的吧,我的war包中WEB_INF/lib下有的。
0
Nick_Dong
Nick_Dong

这是所有代码

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"  pageEncoding="ISO-8859-1"%>
    <%@ page import ="java.io.*" %>
    <%@ page import ="com.sun.tools.attach.VirtualMachine" %>
    <%@ page import ="com.sun.tools.attach.VirtualMachineDescriptor" %>
     
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>demo</title>
</head>
<body>
<div id="demo1" class="demo">
 <%
out.print("Number of runtime jvms : "+VirtualMachine.list().size());
for (int i=0; i<VirtualMachine.list().size(); i++) {
    VirtualMachineDescriptor vi = VirtualMachine.list().get(i);
    out.println("**PID :"+vi.id()+" **DISPLAYNAME:"+vi.displayName());
}
           %>
 
</div>
</body>
</html>



返回顶部
顶部