program story

update-alternatives --config java 명령을 사용하는 방법

inputbox 2021. 1. 8. 08:12
반응형

update-alternatives --config java 명령을 사용하는 방법


Linux Debian (Squeeze)에 Apache Solr를 설치하고 있습니다. 나는 sun-java jdk 1st를 설치하라는 지시를 받았습니다. 그런 다음 명령 sudo update-alternatives --config java사용하여 특정 Java (sun-java)가 기본 런타임인지 확인해야합니다. 그러나이 명령을 실행하면 다음을 얻습니다.

There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                      Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      auto mode
  1            /usr/bin/gij-4.4                           1044      manual mode
  2            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  3            /usr/lib/jvm/java-6-sun/jre/bin/java       63        manual mode

Press enter to keep the current choice[*], or type selection number:

그렇다면 sun-java를 기본 런타임으로 사용하려면 어떤 숫자를 선택해야합니까? 또한 자동 및 수동 모드는 정확히 무엇을 의미합니까? 위의 3을 선택하고 update-alternative 명령을 실행하면 위와 동일한 출력이 표시됩니다. 여전히 수동 모드를 읽지 만 *가 3 앞에 있다는 점을 제외하고는 아무것도 변경되지 않은 것 같습니다.

내가 한 일이 올바른지 확인하는 방법이 있습니까?


옵션을 선택한 후 "java -version"을 입력하면 큰 변화를 알 수 있습니다. 따라서 update-alternatives --config java옵션 을 실행 하고 선택 3하면 Sun 구현을 사용하게됩니다.
에 또한, 관련하여 automanual mode, 선택을하는 것은의 그것을해야 auto mode이 페이지 진술 :

--config옵션을 사용할 때 대안은 주어진 이름이 마스터 링크 인 링크 그룹에 대한 모든 선택 사항을 나열합니다. 그런 다음 링크 그룹에 사용할 선택 사항을 묻는 메시지가 표시됩니다. 변경하면 링크 그룹은 더 이상에 없습니다 auto mode. --auto자동 상태로 돌아가려면 옵션 을 사용해야합니다 .

그리고 auto mode첫 번째 / 유일한 JRE / JDK를 설치할 때 설정 되었다고 생각 합니다.


update-alternatives 이 경우 JDK에 따라 모든 요소를 ​​업데이트해야하므로 문제가됩니다.

이러한 특정 목적을 위해 패키지 java-common에는 update-java-alternatives.

그것을 사용하는 것은 간단합니다. 먼저 컴퓨터에서 사용할 수있는 JDK 설치를 나열합니다.

root@mylaptop:~# update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64

그런 다음 하나를 선택하십시오.

root@mylaptop:~# update-java-alternatives -s java-1.7.0-openjdk-amd64

/opt/java/jdk1.8.0_144그때 하나가 JDK를 설치했다고 가정합니다 .

  1. javac에 대한 대안 설치

    $ sudo update-alternatives --install /usr/bin/javac javac /opt/java/jdk1.8.0_144/bin/javac 1
    
  2. 대체 구성을 확인 / 업데이트하십시오.

    $ sudo update-alternatives --config javac
    

대안이 하나 뿐인 경우 javac메시지가 표시되고 그렇지 않으면 새 JDK에 대한 옵션을 선택합니다.

모든 것이 올바르게 설정되었는지 확인하려면 다음을 수행하십시오.

$ which javac
/usr/bin/javac

$ ls -l /usr/bin/javac
lrwxrwxrwx 1 root root 23 Sep  4 17:10 /usr/bin/javac -> /etc/alternatives/javac

$ ls -l /etc/alternatives/javac
lrwxrwxrwx 1 root root 32 Sep  4 17:10 /etc/alternatives/javac -> /opt/java/jdk1.8.0_144/bin/javac

그리고 마지막으로

$ javac -version
javac 1.8.0_144

필요에 따라 java, keytool, jar 등에 대해 반복하십시오.


이것이 내가 jdk를 설치하는 방법입니다.

#!/bin/bash
cd /opt/
sudo mkdir java
sudo tar -zxvf ~/Downloads/jdk-8u192-linux-x64.tar.gz
sudo ln -s  jdk1.8.0_192 current
for file in /opt/java/current/bin/*
do
   if [ -x $file ]
   then
      filename=`basename $file`
      sudo update-alternatives --install /usr/bin/$filename $filename $file 20000
      sudo update-alternatives --set $filename $file
      #echo $file $filename
   fi
done

There are many other binaries that need to be linked so I think it's much better to try something like sudo update-alternatives --all and choosing the right alternatives for everything else besides java and javac.


Have a look at https://wiki.debian.org/JavaPackage At the bottom of this page an other method is descibed using a command from the java-common package

ReferenceURL : https://stackoverflow.com/questions/12787757/how-to-use-the-command-update-alternatives-config-java

반응형