How to check Oracle Java version if multiple versions of Java installed on Ubuntu

后端 未结 5 1370
感情败类
感情败类 2021-02-07 10:46

I have both OpenJDK and Oracle Java installed on my Ubuntu. If the activated java is OpenJDK, is there a way to check the version of Oracle java in bash shell

5条回答
  •  梦毁少年i
    2021-02-07 11:31

    update-java-alternatives -l will list all the java versions installed via the alternatives system.

    For instance on one of my systems it will display the version and the path:

    java-1.6.0-openjdk-amd64 1061 /usr/lib/jvm/java-1.6.0-openjdk-amd64
    java-7-oracle 1069 /usr/lib/jvm/java-7-oracle
    

    If you want the oracle one then I guess you could do:

    update-java-alternatives -l | grep oracle | awk '{ print $1 }'
    

    This would alternatively find all oracle versions and issue the -version command against each one in the list:

    update-java-alternatives -l | grep oracle | awk '{system($3"/bin/java -version")}'
    

    Output may look something like this:

    java version "1.7.0_67"
    Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
    Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
    

    One step further would be to parse out the java version from the -version command and simply display it:

    (update-java-alternatives -l | grep oracle | awk '{system(""$3"/bin/java -version 2>&1 | grep \"java version\"")}') | awk -F\" '{print $2}'
    

    The 2>&1 is needed because Java will display version to standard error. The output would simply look like this (and could be easily assigned to a bash variable if you needed it that way):

    1.7.0_67
    

    If you had multiple oracle instances this would display the version for each one. If you wanted to find all the versions for every Java you could simply remove the | grep oracle

提交回复
热议问题