为什么java8服务器JRE不包含服务器特定的工具,如jstack,jmap,jvisualvm,jstat

问题描述 投票:17回答:2

来自oracle

Server JRE包括用于JVM监视的工具和服务器应用程序通常需要的工具,但不包括浏览器集成(Java插件)。

从服务器端工具的使用情况来看,最常用于监控的工具列表是jstack,jvisualvm,jstat,jconsole;服务器jre包的jdk / bin中缺少所有内容。

任何关于这种捆绑背后的理性的想法。

Edit

这只是“服务器jre 8”的情况。对于“服务器jre 7”,所有这些工具都存在。

java
2个回答
20
投票

经过一些研究,我发现许多“缺失”的工具功能实际上仍然可用。

例如,jcmd可以做同样的事情而不仅仅是jstack。要在严重的jre 8中进行线程转储,请使用jcmd $PID Thread.print

jconsole工具功能是间接可用的,即使bin中缺少jconsole,jconsole.jar也在lib文件夹中,您可以使用java -jar lib/jconsole.jar执行它以获得相同的旧功能。

jcmd也可用于获取其他内存/ gc统计信息。运行jcmd $pid help以查看更多信息。

因此,使用这些工具,我认为在服务器jre 8中获得与我们以前在服务器jre 7中获得相同的功能集是很好的,并且它可能会从服务器jre 8中删除以删除冗余。


-2
投票

使用jattach

apk add --no-cache jattach --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/

参考:https://dev.to/jarekprzygodzki/generating-jvm-memory-dumps-from-jre-h8c

© www.soinside.com 2019 - 2024. All rights reserved.