Different Java version showing on command line

前端 未结 4 1744
灰色年华
灰色年华 2021-02-07 07:31

I have recently checked on my Java version. I ran the command java -version and I found out that I was using java version 1.7.0_09. But when I tried to

相关标签:
4条回答
  • 2021-02-07 07:59

    In answer to the "actual" question:

    Another thing that is weird is, I tried to check on environment variable settings, and it does not say anything about jdk1.7.0_09.

    What happened here is that you installed jdk1.7.0_07 and then you auto-upgraded it. When that happens , it still uses the old folder name that you originally installed to.

    After I install Java , I usually make a copy of the JDK directory and name it with the version number. Then, I can directly call a certain java like so:

    @echo off
    :: testjava.bat
    set JAVA_HOME=C:\JDK1.x.xx
    set PATH=%JAVA_HOME%\bin;%PATH%;.
    java -version
    pause
    

    So, my recommendation is to set your JAVA_HOME system variable and PATH variable like I show above. This would override everything on your system so that your JDK of your choice is the default over the JRE.

    0 讨论(0)
  • 2021-02-07 08:02

    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).

    0 讨论(0)
  • 2021-02-07 08:12

    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

    0 讨论(0)
  • 2021-02-07 08:19

    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.

    0 讨论(0)
提交回复
热议问题