Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么java8服务器JRE不包含特定于服务器的工具,如jstack、jmap、jvisualvm、jstat_Java - Fatal编程技术网

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

为什么java8服务器JRE不包含特定于服务器的工具,如jstack、jmap、jvisualvm、jstat,java,Java,从 服务器JRE包括用于JVM监视的工具和常用的工具 服务器应用程序需要,但不包括浏览器 集成(Java插件) 从服务器端工具的使用情况来看,最适合监视的工具有jstack、jvisualvm、jstat、jconsole;服务器jre捆绑包的jdk/bin中缺少所有文件 任何关于捆绑背后的理性的想法 编辑 这仅适用于“服务器jre 8”。对于“服务器jre 7”,所有这些工具都存在。经过一些研究,我发现许多“缺失”的工具功能实际上仍然可用 例如,jcmd可以做同样的事情,而且比jstack做得

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

从服务器端工具的使用情况来看,最适合监视的工具有jstack、jvisualvm、jstat、jconsole;服务器jre捆绑包的jdk/bin中缺少所有文件

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

编辑
这仅适用于“服务器jre 8”。对于“服务器jre 7”,所有这些工具都存在。

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

例如,jcmd可以做同样的事情,而且比jstack做得更多。要在严重的jre 8中进行线程转储,请使用
jcmd$PID thread.print

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

jcmd还可以用于获取其他内存/gc统计数据。运行jcmd$pid帮助查看更多信息

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

使用jattach

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

请参阅:

我认为这是因为您提到的工具是一种开发工具。这些工具不用于生产环境,这些工具仅用于开发、调试和分析。@alexeymalev,这些工具用于监视java过程中的任何问题。例如:在生产中,我们使用jstack分析服务器挂起,使用jvisualvm进行任何监视/分析。通过描述,我觉得我们应该采用“服务器jre”来满足这些需求。我不确定这个问题是否能由不在Oracle工作的人现实地回答,按照目前的措辞。我的jre 7中没有这些问题。它们是JDK工具。@EJP它们存在于服务器jre 7中,而不是普通的jre 7中。但是服务器jre 8中缺少同样的功能。很漂亮!那么jstat呢?我非常需要检查元空间,但我的情况与您相同:jre 8 server edition上没有jstat:(嗨,例如jstat-gc@Phate,使用jcmd$pid gc)。run@Phate,这可能是因为您没有以运行java进程的用户的身份运行该命令“jcmd$pid GC.run”。