이 질문에 언급 된 모든 지시 사항을 따랐 지만 마지막 부분에 문제가 있습니다.
실제로 버전 6.22의 Java가 있으며 버전 6.30으로 업데이트하고 싶습니다.
따라서 추출 된 디렉토리 java-6-oracle
를 옮긴 후 /usr/lib/jvm
무엇을 해야할지 모르겠습니다. 위의 답변에서 지적한 스크립트가 java 5에서 java 6으로 업데이트되기 때문입니다.
명확성을 위해 ls
in dir을 수행하면 여기에 출력됩니다 /usr/lib/jvm
.
$ ls -l /usr/lib/jvm
total 8
lrwxrwxrwx 1 root root 14 2011-07-12 15:18 default-java -> java-6-openjdk
lrwxrwxrwx 1 root root 14 2011-07-12 12:19 java-1.6.0-openjdk -> java-6-openjdk
drwxr-xr-x 10 root root 4096 2012-04-12 12:06 java-6.31-oracle
drwxr-xr-x 7 root root 4096 2012-02-24 14:43 java-6-openjdk
지금 어떻게해야합니까?
추가 된 부분
@fossfreedom의 제안에 따라 어쨌든 스크립트를 실행하고 실제로 Java 버전을 업데이트했습니다.
실제로 명령 java -version
출력을 실행 하면 다음과 같습니다.
$ java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode)
여전히 문제 가 있습니다 .Irun javac -version
을 사용하면 이전 버전이 설치됩니다.
$ javac -version
javac 1.6.0_22
이 링크 에서 테스터를 사용하면 버전이
Java Version 1.6.0_22 from Sun Microsystems Inc.
무슨 일이야?
Java Runtime Environment가 업데이트 된 것 같지만 브라우저 용 Java 컴파일러 및 Java 플러그인은 업데이트되지 않았습니다.
업데이트하려면 어떻게해야합니까?
다른 추가 부품
sudo update-alternatives --config java
다음 출력을 반환합니다
$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-6.31-oracle/bin/java 1062 auto mode
1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manual mode
2 /usr/lib/jvm/java-6.31-oracle/bin/java 1062 manual mode
Press enter to keep the current choice[*], or type selection number:
이는 JRE가 버전 6.31로 올바르게 업데이트되었으며 Java 컴파일러 및 Java 브라우저 플러그인에 문제가 있다는 사실과 관련이 있습니다.
어떤 아이디어?
답변
첫 번째 질문을 다시하십시오 :
아마도 webupd8 스크립트가 0.5b라는 것을 혼동 할 수 있습니다. 그것은 스크립트의 버전입니다-그것은 자바 버전을 참조하지 않습니다.
javac 버전 설정에 추가.
javac 컴파일러의 경로를 명시 적으로 제공해야한다고 생각합니다.
즉
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-6.31-oracle/bin/javac" 1
뒤에 :
sudo update-alternatives --config javac
자바 크롬 플러그인 설정과 관련하여.
마스터 질문 :
폴더 구조가 약간 다르기 때문에 링크 명령은 다음과 같아야합니다.
ln -s /usr/lib/jvm/java-6.31-oracle/jre/lib/i386/libnpjp2.so ~/.mozilla/plugins/
답변
참조 이 ; 운영
sudo update-java-alternatives --list
이름과 디렉토리로 시스템의 모든 Java 설치를 나열한 다음 실행
sudo update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]
사용할 JRE / JDK를 선택합니다.
각 Java 태스크마다 다른 JDK / JRE를 사용하려는 경우 한 번에 하나의 Java 실행 파일을 구성하기 위해 업데이트 대체를 실행할 수 있습니다. 당신은 실행할 수 있습니다
sudo update-alternatives --config java[Tab]
구성 할 수있는 Java 명령 (java, javac, javah, javaws 등)을 보려면 그리고
sudo update-alternatives --config [javac|java|javadoc|etc.]
해당 Java 작업 / 명령을 특정 JDK / JRE에 연결합니다.
일부 응용 프로그램에 대해 JAVA_HOME을 설정해야 할 수도 있습니다. 이 답변 에서 사용할 수 있습니다
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
JRE의 경우
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")
JDK를 위해.
답변
패키지와 패키지 update-java-alternatives
에서 사용 java-common
하는 *.jinfo
파일 에서 명령을 살펴 봐야한다고 생각 합니다. 이를 통해 Java 설치 (JDK, JRE, …에 관계없이) 사이를 완전히 전환 할 수 있어야합니다.
답변
우분투 / 리눅스에서는 다음을 사용하여 Java 버전을 전환 할 수 있습니다
update-alternatives --config java
그러나 이전에는 버전을 설치해야합니다.
이 스크립트 (./install-java.sh)를 사용하여 여러 JVM을 설치할 수 있습니다.
#!/bin/sh
(
lookforJdks=$PWD
echo "Directory: $lookforJdks"
jdks=`test -e ./javac || find $lookforJdks -type d -iname '*jdk1.*' 2> /dev/null`
#set -e
echo 'which jdk do you want to choose? looking for jdks. This might take a while'
echo "$jdks" | awk '{printf("%5d : %s\n", NR,$0)}'
read choose
test -e ./javac || cd `echo "$jdks" | tr '\n' ',' | cut -d',' -f $choose`/bin
for e in appletviewer extcheck idlj jar jarsigner java javac javadoc javah javap jconsole \
jdb jhat jinfo jmap jps jrunscript jsadebugd jstack jstat jstatd native2ascii rmic \
schemagen serialver wsgen wsimport xjc jvisualvm jmc; do sudo update-alternatives \
--install /usr/bin/$e $e $(readlink -f ./$e) 100; done
)
echo "RUN update-alternatives --config java"
이 스크립트를 JVM의 압축을 푼 폴더에 넣고 다음을 실행하십시오.
/opt/install-java.sh
다음 사용 :
update-alternatives --config java
답변
javac javaws javadoc 또는 기타 Java 관련 명령에 대한 대안을 수동으로 설정하려는 경우 해당 명령을 java 대체 문자의 슬레이브로 만들 수 있습니다.
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk1.8.0_74/bin/java" 0 --slave "/usr/bin/javadoc" "javadoc" "/opt/jdk1.8.0_74/bin/javadoc"
update-alternatives: updating alternative /opt/jdk1.8.0_74/bin/java because link group java has changed slave links
:/opt/jdk1.8.0_74$ sudo update-alternatives --display java
java-자동 모드 링크 최고 버전은 /opt/jdk1.8.0_74/bin/java 링크입니다. 현재 링크는 /opt/jdk1.8.0_74/bin/java를 가리 킵니다. java는 / usr / bin / java입니다. javadoc은 / usr / bin입니다. / javadoc /opt/jdk1.8.0_74/bin/java-우선 순위 0 슬레이브 javadoc : /opt/jdk1.8.0_74/bin/javadoc
jdk가 설치된 디렉토리로 /opt/jdk1.8.0_74/를 변경하십시오.
답변
/etc/environment
텍스트 편집기에서 열고 다음 행을 추가하십시오.
JAVA_HOME="usr/lib/jvm/open-jdk
-Java 경로가 다를 수 있습니다.
다음 명령을 실행하여 source를 사용하여 변수를로드하십시오.
source /etc/environment
그런 다음이 명령을 실행하여 변수를 확인하십시오.
echo $JAVA_HOME
이 경로를 설정 한 상태에서 다음 명령을 실행하십시오.
sudo update-java-alternatives --list
기본 Java 버전을 선택하십시오.