How to check JDK version that installed on your computer
The Java development kit (JDK) contains tools for Java development, and the Java Runtime Environment (JRE) contains a JVM to convert byte code .class
to machine code, and execute it, in short, the JRE runs Java program.
Check JDK Version
We can use javac -version
to find out the version of the installed JDK. In the below example, the JDK version is 11.0.7
$ javac -version
javac 11.0.7
Check JRE Version
We can use java -version
to find out the version of the installed JRE. In the below example, the JRE version is 1.8.0_252
$ java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-8u252-b09-1~19.10-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
The JDK and JRE versions can be different on the same computer. Multiple JDK and JRE versions are allowed on the same computer; it is better to find out which version is configured in the system classpath to run or compile the Java program.
1. Where JDK is installed?
The JDK also contains a JRE to run the Java program.
$JAVA_HOME/bin/java <-- JDK
$JAVA_HOME/jre/bin/java <-- JRE
1.1 On Ubuntu or Linux, we can use which javac
to find out where JDK is installed.
$ which javac
/usr/bin/javac
$ ls -lsah /usr/bin/javac
/usr/bin/javac -> /etc/alternatives/javac
$ ls -lsah /etc/alternatives/javac
/etc/alternatives/javac -> /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/javac
$ cd /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/
$ ./javac -version
javac 11.0.7
In the above example, the JDK is installed at /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/
.
1.2 On Windows, we can use where javac
to find out where JDK is installed.
Microsoft Windows [Version 10.0.18362.900]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\Users\mkyong>which javac
'which' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\mkyong>where javac
C:\opt\jdk-11.0.1\bin\javac.exe
Do I need JDK or JRE?
For end-users, they need to install JRE to run the Java program, and the JDK is for developers. For the production environment, the deployment team only need to install JRE to run the Java program. However, developers often request to install the JDK, instead of the standalone JRE on the production server, because the JDK contains JRE and also extra tools to monitor and debug the running Java program.
What’s up with this? The Java development kit (JDK) is NOT the same thing as the Java runtime environment (JRE). The java command gives the version of the JRE, the runtime environment. “javac -version” would give you the version of the Java development kit. *** I see that “Vittorio” had pointed this issue out already.
The article is updated with more examples, thanks for the inputs.
yes you’re correct
“java -version” will only show you your version of JRE. “javac -version” will show you your version of JDK. Why the distinction? Some people might have only JRE installed and not JDK. JDK is just for programmers.
thanks
This is the wrong way of checking the java version. It will give you the JRE version installed on your machine and not the JDK version installed. Do you have any way of checking the JDK version installed on the machine.
wrong. that gives you the version of the JRE in your path.
if you want to have the JDK version you have to go to the jre/bin folder in your JDK and run the local file java version.
Linux example:
get the java version in my PATH:
vittorio@vittorio-laptop ~ $ java -version
java version “1.6.0_35”
Java(TM) SE Runtime Environment (build 1.6.0_35-b10)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01, mixed mode)
get the JDK version:
1) go to the jre/bin:
vittorio@vittorio-laptop ~ $ cd /usr/java/jdk/jre/bin
2) get the JDK version
vittorio@vittorio-laptop /usr/java/jdk/jre/bin $ ./java -version
java version “1.6.0_33”
Java(TM) SE Runtime Environment (build 1.6.0_33-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03, mixed mode)
as you can se they are different
The JDK version is the same as “java version”
Yes, right. I’ve already install netbeans 7.3.1 but when I install glassfish, it said that my JDK Version still 6 version, need to install JDK 7. So it confusing me. Can somebody help me here?
you can keep repeating stuff, it doesn’t become true for that 🙂
Vittorio for president.
It’s very important to note that JDK and JRE are different entities. Different versions. Different paths.
thanks a lot ,, your answer is the correct we should go to that directory and can find the difference
error: Could not load or find the main Class version
I use 64 bit os and java -version show 64 bit jdk but installed 32 bit jdk. How to change of jdk version to 32 bit.
thank you so much.. it worked for me
hai
i am getting this error, while i running programming
Error: opening registry key ‘SoftwareJavaSoftJava Runtime Environment’
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.
This is because the JRE is not installed on your machine.
thanks a lot ….. 🙂 can we have more than one jdk running at the same time ? what is difference between jdk , jre , jinitiator , jvm ??? ple elaborate in simple manner..
thanks a lot ….. 🙂 can we have more than one jdk running at the same time ? what is difference between jdk , jre , jinitiator , jvm ??? ple elaborate in simple manner.
The title of this post says, “How to find the JDK version,” but recent JDK versions are like 6 or 7. Once I find the “1.x.y” version number, am I supposed to just strip off the “1.” part?
Yes. When the version is displayed as 1.8.0_31. It means JDK version 8, update 31.
the version of the JDK can be easily retrieved from the control panel programs information.
Thanks it helped
thank you
Thanks dear for simple solution. It helped.
Regards
SP
huh didnt work for mine god knows why 🙁
because it can’t find the java command in your PATH
You can ignore, it worked.
Hi how can we get JDK versionit is showing like 7.0-internal how would i know full version number like .0.*.*
Same error for me. How do I fix this? It states java or javac is not recognised as an internal or external command
Thanks….
Gr8
Its work for me
i am searching this solution since long time
thanks
hi dear
thanks its working ,its saved my log of time
Thanks
saraswatipgcollege.com