When and Why run alternatives --install java jar javac javaws on installing jdk in linux

前端 未结 6 1768
耶瑟儿~
耶瑟儿~ 2021-02-14 08:56

To install java in linux (I used CentOS, RHEL is same too), I used this command

rpm -Uvh /path/to/binary/jdk-7u55-linux-x64.rpm

and verified java

6条回答
  •  忘掉有多难
    2021-02-14 09:31

    java, javaws, javac, and jar are all different executables used by the JDK. When you run alternatives --config java you are only configuring which version of the java executable you wish to run. However, the JDK includes, for example, the javac compiler. You need to configure which version of the compiler you wish to use as well.

    The alternatives command is, in a nutshell, used to maintain a lookup for symbolic (or sym) links. Before you can choose which version of java you want to run with the --configure option, you must first register the actual path to the executable with the --install option. alternatives --install is not installing any software. It is merely registering some paths and aliases with the alternatives framework. (Note: alternatives is not using the alias command. I mean "aliases" in the traditional, literal sense.)

    You should also understand what the rpm command does. Really, it is only dropping down a set of binaries into a particular directory. This directory may be long and tedious to explicitly specify: /some/path/to/lib/jvm/java-1.x.x-etc-etc-x86/jre/bin/java. You don't want to specify this every time you want to run java. Instead, we set up some sym links.

    You might also want to read up on how the PATH works in linux.

    It may become clearer if you try tracing through the setup for your machine. Here is what I ran:

    > which java
    /usr/bin/java
    > ls -l /usr/bin/java
    lrwxrwxrwx 1 root root 22 Aug 14  2014 /usr/bin/java -> /etc/alternatives/java
    > ls -l /etc/alternatives/java
    lrwxrwxrwx 1 root root 73 Aug 14  2014 /etc/alternatives/java -> /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65-2.5.1.2.fc19.x86_64/jre/bin/java
    

提交回复
热议问题