首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jps进程是JVM进程吗?

jps进程是JVM进程吗?
EN

Stack Overflow用户
提问于 2019-04-14 01:05:12
回答 2查看 1.1K关注 0票数 1

在Ubuntu,man jps

jps -列出目标系统上的仪器化Java虚拟机(JVM)。

“仪器化Java虚拟机”是什么意思?

代码语言:javascript
复制
$ jps -v
29584 Jps -Dapplication.home=/usr/lib/jvm/java-11-openjdk-amd64 -Xms8m -Djdk.module.main=jdk.jcmd

根据定义,jps进程是JVM进程吗?

jps是一个ELF文件,而不是从Java程序编译的JVM字节码程序:

代码语言:javascript
复制
$ file /usr/lib/jvm/java-11-openjdk-amd64/bin/jps
/usr/lib/jvm/java-11-openjdk-amd64/bin/jps: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.2.0, BuildID[sha1]=3f48c70ab711b493ee793c92c19b3a884896bb4d, stripped

$ jps -v
16462 Jps -Dapplication.home=/usr/lib/jvm/java-11-openjdk-amd64 -Xms8m -Djdk.module.main=jdk.jcmd
EN

回答 2

Stack Overflow用户

发布于 2019-04-14 03:53:30

“仪器化Java虚拟机”是什么意思?

被检测的JVM是一个被检测的JVM。

然而,这是一个愚蠢的定义,我还没有找到一个明确的定义,“工具”的真正含义。

事实上,它可能适用于(至少)任何自Java5.0以来的HotSpot。jps的当前实现如下所示:

  • 如果您指定了一个hostid,那么jps会尝试联系主机上的一个RMI服务(jstatd),以了解Java。
  • 如果不指定hostid,则jps通过查找当前用户可读的/tmp/hsperfdata_<username>目录来查找/tmp/hsperfdata_<username>进程;参见How do jps, jinfo, jstat, jmap and jstack get information about local Java processes?。JVM将创建其中一个目录,除非您使用-XX:-UsePerfData-XX:-PerfDisableSharedMem启动JVM。(感谢@apangin获得这一信息。)

但最终我们仍然有一个循环(工作)定义:“工具化JVM”是jps能够找到的。

根据定义,jps进程是JVM进程吗?

jps的当前实现是一个Java类,它运行在由泛型启动程序( jps可执行文件)创建的JVM中。然而,没有任何“定义”规定必须以这种方式实施。

请注意,由于没有任何参数的jps会发现自己(至少在我的系统上),这意味着当前的实现使用了一个仪器化的JVM。

jps是一个ELF文件,而不是从Java程序编译的JVM字节码程序。

这和这件事毫无关系。JVM是正在执行Java程序的东西(虚拟机)。它与"JVM-ness“程序的启动方式无关,甚至与启动时程序是否被表示为字节码无关。

使用jlink (或更老的第三方产品),一个普通的Java (字节码)程序可以转换为本地可执行文件。在Linux上,jlink将生成一个ELF文件。然而,当您运行ELF文件时,仍然会有一个JVM。

票数 6
EN

Stack Overflow用户

发布于 2019-04-22 06:28:54

JVM附带的大多数命令实际上都是使用Java实现的。在本例中,jps启动JVM以运行类sun.tools.jps.Jps

http://www.docjar.com/html/api/sun/tools/jps/Jps.java.html

类似地,javac实际上运行com.sun.tools.javac.Main

https://docs.oracle.com/javase/9/docs/api/com/sun/tools/javac/Main.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55671171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档