Different Java version showing on command line
That AppData
path in your comment isn't on your path (supposedly, anyway), so that's probably not what it's using. Unfortunately, there isn't a which
command on Windows either.
If you edit your path and move the C:\Program Files\Java\bin
directory to the very beginning of the list and it still prints 1.7.0_09
, then somehow you have JDK7u9 in your JDK7u7 folder. If not, browse to all the other directories on your path and open them 1-by-1 until you find the appropriate java
file. Fortunately for you, your path is much shorter than mine.
Note that when doing:
> java -version
It may also look for java.bat
and other non-exe
extensions, so keep an eye out for this while you're searching your path. Try running:
> java.exe -version
That way you know you're looking for an exe
file.
One last thing you can try:
> "C:\Program Files\Java\jdk1.7.0_07\bin\java" -version
If this returns 1.7.0_09
, then something happened that updated your JDK in-place, which isn't supposed to happen, AFAIK (but I could be wrong).
Adding the following will resolve your issue:
set JAVA_HOME="your jdk path"
set PATH=%JAVA_HOME%\bin;%PATH%.
Additionally if it does not work that means you have set the PATH
for multiple java versions, include only the latest one and remove all from PATH
variables.
It's possible to have many JRE side-by-side on a computer.
If the JRE is properly installed on Windows, informations about each version are stored in the registry. The installation process installs a special java.exe in the system PATH (%SYSTEMROOT%\System32). So you don't need to alter you PATH because this special java.exe will find the current JRE. From a command line, type java -version to display the current jre version installed.
With release 1.6, it's now possible to select a different JRE installation than the last one without any registry modification.
The JRE installation are listed in the registry in the key
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
Take this simple test class
public class ShowVersion {
public static void main(String args[]) {
System.out.println(System.getProperty("java.version"));
}
}
On a system, with 1.6 and 1.5 installed. If you type
> java ShowVersion
It's probably the 1.6 JRE that will be used since it's the last installed.
To force the 1.5 JRE instead, use this command line.
> java -version:"1.5" ShowVersion
If the bytecode is incompatible with the given JRE then .. it won't work, of course.
ref : technote java 6
You can always give the complete path to use a specific installation. Launching the JVM this way does not use the registry setting at all.
>"C:\Program Files\Java\j2re1.4.1_02\bin\java" -version
java version "1.4.1_02"
source : Select a particular JRE from the command line