我可以使用jps列出正在运行的java进程,并使用jstack -l process_id来获取正在运行的java进程的堆栈信息.我想知道这个进程运行在哪个java版本上.有办法吗?我不必使用jstack工具.谢谢.
jstack -l 23819 2014-11-12 12:36:11全线程转储OpenJDK 64位服务器VM(23.25-b01混合模式):
"Attach Listener"守护进程prio = 10 tid = 0x000000000272f800 nid = 0x614b等待条件[0x0000000000000000] java.lang.Thread.State:RUNNABLE
锁定的可拥有同步器: - 无
小智 5
使用标准命令的简单解决方案如下所示:
lsof -p PID | grep jdk
Run Code Online (Sandbox Code Playgroud)
它为您提供了进程加载的文件的列表。
在 Linux 中你可以这样做
sudo strings /proc/<java_pid>/smaps |grep jre
Run Code Online (Sandbox Code Playgroud)
这将产生类似于
7f8ff82ac000-7f8ff82ad000 r-xp 00000000 fd:00 252363860 /usr/java/jdk1.8.0_141/jre/lib/amd64/libjaas_unix.so
从中您可以清楚地看到它使用的JDK版本。
| 归档时间: |
|
| 查看次数: |
4945 次 |
| 最近记录: |