I created a web project used spring boot and deployed it in remote server, and it's default JDK is
echo $JAVA_HOME
/usr/local/jdk1.7.0_72
because I used java 8 in my project, so before starting my project, I explicitly exec below command
export JAVA_HOME="/usr/local/jdk1.8.0_65"
then start my project
./myapp.jar
but when I exec below command
java -version
java version "1.7.0_72"
Java(TM) SE Runtime Environment (build 1.7.0_72-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.72-b04, mixed mode)
I am a little confused, I'm not sure which jdk version my project actually used? That is there is a java process
jps -l
17429 /var/myapp.jar
How do I know which java version it is used?
Thanks @frant.hartm
# ps aux | grep 17429
root 17429 0.4 6.7 5995260 1104984 pts/13 Sl 19:16 0:29 /usr/local/jdk1.8.0_65/bin/java -Dsun.misc.URLClassPath.disableJarChecking=true -Dserver.port=8081 -jar /var/myapp.jar
# jcmd 17429 VM.version
17429:
Java HotSpot(TM) 64-Bit Server VM version 25.65-b01
JDK 8.0_65
Use jcmd:
jcmd process_id VM.version
$ jcmd 9619 VM.version
9619:
Java HotSpot(TM) 64-Bit Server VM version 24.80-b11
JDK 7.0_80
Alternatively, you can use ps to find out which java binary was used:
ps aux | grep 9619
user 9619 0.0 0.5 4031224 82480 ? Sl 12:31 0:01 /usr/lib/jvm/java-7-oracle/bin/java -cp /usr/lib/jvm
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With