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 구현을 사용하게됩니다.
에 또한, 관련하여 auto
대 manual 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를 설치했다고 가정합니다 .
javac에 대한 대안 설치
$ sudo update-alternatives --install /usr/bin/javac javac /opt/java/jdk1.8.0_144/bin/javac 1
대체 구성을 확인 / 업데이트하십시오.
$ 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
'program story' 카테고리의 다른 글
Android에서 RTL 언어 식별 (0) | 2021.01.09 |
---|---|
java.lang.String.split ()이 선행 빈 문자열을 만드는 것을 방지하는 방법은 무엇입니까? (0) | 2021.01.08 |
VB.Net Lambda 식을 작성하는 방법 (0) | 2021.01.08 |
Tensor 내에서 단일 값 조정 — TensorFlow (0) | 2021.01.08 |
파일 이름 특수 문자를 제거하는 크로스 플랫폼 Java 메서드가 있습니까? (0) | 2021.01.08 |