我的系统中运行着一个 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