VirtualMachine.list()返回空的列表

发布于 2021-11-18 12:40:13 字数 450 浏览 717 评论 6

环境: 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都是同一个,是怎么回事呢?大家有什么想法吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

猫烠⑼条掵仅有一顆心 2021-11-23 12:07:28

这是所有代码

<%@ 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>

瑾兮 2021-11-22 14:58:46

eclipse也没自动加,我手动拷到WEB_INF/lib下的。没tools.jar会报错的吧,我的war包中WEB_INF/lib下有的。

梦里兽 2021-11-22 07:39:31

系统的classpath也加上了,还是不行

奈何桥上唱咆哮 2021-11-22 06:50:52

http://bbs.csdn.net/topics/390655110 已解决。

挽清梦 2021-11-22 02:13:11

应该需要把 tools.jar 加入到 classpath 下面, eclipse 已经自动帮你加了。

筱果果 2021-11-21 12:18:14

删除catalina.sh 或者 catalina.bat 中的所有-Djava.io.tmpdir配置项,原因不详

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文