解决jps不显示Java进程,jconsole、jvisualvm无法使用,hsperfdata_%UserName%下无进程文件系列问题

jps(Java Virtual Machine Process Status Tool)可以显示当前的Java进程信息。
可使用的命令:       jps [-q] [-mlvV] [<hostid>]
    <hostid>:      <hostname>[:<port>]

cmd下输入jps只显示当前Java进程的进程号和类名。

jps -q:只显示pid,不显示class名称、jar文件名和传递给main方法的参数。
jps -m:输出传递给main方法的参数。
jps -l:输出程序main class的完整package名或程序的jar文件完整路径名。
jps -v:输出传递给JVM的参数。

jconsolejvisualvm可以监控Java进程的内存、CPU等。

这些jvm工具在JDK的bin下,JDK10中没有了jvisualvm。

jps能得到当前Java进程信息,Windows下靠的是%TEMP%/hsperfdata_%USERNAME% 目录下以该进程的id为文件名的文件。C:\TempC:\Users\登录的用户名\AppData\Local\Temp都有Temp文件夹,一般为后者,在文件资源管理器的地址栏中输入%TEMP%回车可查看对应的目录。如果Java程序运行时,在Temp的hsperfdata_你的用户名这个文件夹下没有新的进程文件生成,那么可以考虑权限的问题。在这个文件夹下新建会提示你需要管理员权限。如果你是用IDEA等IDE中运行的Java程序,那么必须以管理员权限打开IDE,否则在这个文件夹下无法创建进程文件,那么jvm工具将无法使用。进程文件在Java程序正常关闭后会被删除。另外,jvm工具基于进程管理器,即使你负责编译、运行Java代码的JDK版本和jvm工具的对应JDK版本不相同,不会影响jvm工具的使用。而且,即使你使用-Djava.io.tmpdir想改变临时文件存储位置,也不会影响进程文件位置。

猜你喜欢

转载自blog.csdn.net/haoranhaoshi/article/details/93739387
今日推荐