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

jps进程是JVM进程吗?
EN

Unix & Linux用户
提问于 2019-04-13 22:16:13
回答 2查看 1.4K关注 0票数 -5

在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

谢谢。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2019-04-14 21:54:47

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

在Linux上,一个“仪器化的Java”是由-XX:+UsePerfData选项启动的vm --默认情况下是打开的。

这将导致存储性能&其他信息进入/tmp/hsperfdata_$USER/$PID文件,该文件将由jps(1)工具读取。

如果您想启动一个未使用仪器的JVM,请以java -XX:-UsePerfData YourClass的形式运行它。这将阻止jps的S输出中写入hsperfdata和出现在其中。

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

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

jps只是一个启动器,它将启动一个JVM并将sun.tools.jps.Jps java类从tools.jar加载到其中。JVM以这种方式开始编写自己的hsperfdata文件,这就是为什么Jps类出现在自己的输出中。您可以通过通过-J开关将上述相同的选项传递给JVM来关闭它:

代码语言:javascript
复制
$ jps
12583 Jps
$ jps -J-XX:-UsePerfData
$
票数 4
EN

Unix & Linux用户

发布于 2019-04-14 05:17:53

是的,jps是一个Java应用程序。

来自甲骨文博客

这就是jps命令派上用场的地方。它将列出为您正在使用的JDK安装目录启动的所有虚拟机的进程It。您的输出,特别是进程ids,可能会有所不同:> jps 5156 Jps 4276 MyFrame,因为jps命令本身就是一个Java程序,它也显示在列表中。

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

https://unix.stackexchange.com/questions/512328

复制
相关文章

相似问题

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