如何查明正在使用哪个 JRE?

如何查明正在使用哪个 JRE?

我的系统中运行着一个 Java .jar。我如何知道该 .jar 正在使用哪个 JRE?我在多个位置有多个 JRE。

which java命令产生

/usr/bin/java

$JAVA_HOME被设定为/usr/java/jdk-1.6.0

ps -ef产生

\xyzusr     5206     1  0 02:10 ?        00:00:00 ScrapJAR -p -u 2694 -g 15464 -- java -server -XX:+AggressiveHeap -Xms2048m -Xmx2048m -Xss512k

答案1

最简单的方法是使用命令行工具lsof及其-p开关,以便您可以列出该特定进程正在使用哪些文件。

$ sudo lsof -p 5206 | grep jre

例子

这是我的 Chrome 流程,只是为了让您了解输出的样子。

$ sudo lsof -p 1376 | head -10
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
COMMAND  PID USER   FD      TYPE             DEVICE  SIZE/OFF      NODE NAME
chrome  1376 saml  cwd       DIR                0,3         0  46546425 /proc/10802/fdinfo
chrome  1376 saml  rtd       DIR                0,3         0  46546425 /proc/10802/fdinfo
chrome  1376 saml  txt       REG              253,1  93187864   1837056 /opt/google/chrome/chrome
chrome  1376 saml  DEL       REG               0,17            46544680 /dev/shm/.com.google.Chrome.1ciABr
chrome  1376 saml  DEL       REG               0,17           127971521 /dev/shm/.com.google.Chrome.t7ByaK
chrome  1376 saml  mem       REG              253,1   3334400   1837130 /opt/google/chrome/lib/libpeerconnection.so
chrome  1376 saml  mem       REG              253,1  17313408   1835692 /opt/google/chrome/PepperFlash/libpepflashplayer.so
chrome  1376 saml  mem       REG              253,1   6842800   1837141 /opt/google/chrome/libwidevinecdm.so
chrome  1376 saml  mem       REG              253,1    780024    559781 /usr/lib64/libsqlite3.so.0.8.6

相关内容