JAVA_HOME과 update-alternatives의 차이점은 무엇입니까?


13

Fedora 상자에서 OpenJDK Java Runtime을 기본 Java로 실행하고 Android 개발을 위해 Oracle JDK 6을 사용하는 가장 좋은 방법을 찾으려고 노력했습니다. 즉 Android SDK에서 Android SDK Manager, Android Studio 및 Eclipse를 실행하는 데 사용됩니다.

Fedora 리포지토리에서 OpenJDK Java Runtime을 설치했는데 다음과 같은 설정 대안이 있습니다.

[donnie@fedora ~]$ alternatives --list | grep java
jre_openjdk             auto    /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre
jre_1.7.0               auto    /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre
java                    auto    /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre/bin/java
libjavaplugin.so.x86_64 auto    /usr/lib64/IcedTeaPlugin.so

Oracle에서 제공 한 rpm을 사용하여 Oracle JDK 6을 설치했습니다.

Android Bundle 및 Studio에서 JAVA_HOME을 사용하여에서 다음을 수행하여 Oracle JDK에서 실행할 수 있습니다 .bashrc.

export JAVA_HOME=/usr/java/jdk1.6.0_45/
export PATH=$JAVA_HOME/bin:$PATH

플러그인을 연결해야하기 때문에 Chrome에서 여전히 OpenJDK를 사용하는 것으로 나타났습니다.

JAVA_HOME과 대안 사용의 차이점은 무엇입니까?

답변:


11

대안

대안은 도구 제어 하의 링크를 사용하여 설치된 소프트웨어의 위치를 ​​관리하는 alternatives도구입니다.

이러한 링크는 일반적으로 /etc/alternatives의 디렉토리 아래에 생성 된 중간 링크로 관리됩니다 .$PATH/usr/bin

$ ls -l /usr/bin/java
lrwxrwxrwx. 1 root root 22 Feb 24 17:36 /usr/bin/java -> /etc/alternatives/java

$ ls -l /etc/alternatives/java
lrwxrwxrwx. 1 root root 73 Feb 24 17:36 /etc/alternatives/java -> /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.0.fc19.x86_64/jre/bin/java

$ JAVA_HOME

$JAVA_HOME소프트웨어가 환경 변수의 사용을 살펴 보라고 할 수있는 곳입니다. 받는 사람을 추가 $PATH간단히하면 실행 파일에 존재하는 추가 $JAVA_HOME/bin귀하에 $PATH. 이것은 때때로 특정 응용 프로그램에 필요합니다.

두 가지 메커니즘은 서로 관련되어 있지만 서로 독립적으로 사용하거나 독립적으로 사용할 수 있습니다. 실제로 어떤 메커니즘이 바람직한 지 Java 응용 프로그램에 따라 다릅니다.

내가하는 일

필자는 일반적으로 $JAVA_HOME일부 GUI 응용 프로그램에 사용하지만 일반적으로 Jetty, Tomcat 또는 JBOSS를 사용하는 서버 설치에만 사용합니다.

이러한 설치 alternatives의 경우을 설정하기 전에 Java 설치를 관리하는 데 계속 사용 합니다 $JAVA_HOME. Java를 여러 번 설치 해야하는 경우이 방법을 좋아합니다.

다른 도구를 사용하면 특정 도구가 하나의 Java 설치를 사용하고 다른 도구는 완전히 다른 도구를 사용할 수 있습니다.

참고 문헌


공짜는 대안으로 Java의 다른 구성 요소를 사용할 수 있다는 것입니다. 예를 들어, 대안 설정할 수 있습니다 javajavac다른 한편으로는 다른의 JDK에서 JAVA_HOME=JAVALOCATION가리키는 것 java, javac그리고 javawsjava, javac그리고 javawsJAVALOCATION각각.
Sudhir Khanger

질문을 한 이유 는 OpenJDK를 기본 Java 런타임으로 사용하고 Android Studio, Eclipse 및 SDK Manager가 Oracle JDK를 사용하도록 만드는 방법이었습니다. 시작 스크립트를 업데이트하면 업데이트 될 수있는 시작 스크립트를 하드 편집하여 Oracle JDK에서이 세 가지 프로그램을 실행할 수 있습니다. JDK를 가져 오기 위해 Android Studio에서 사용하는 또는에 STUDIO_JDK추가 할 수 있는보다 일반적인 것을 찾고 있었지만 Android 번들 (Eclipse 및 SDK Manager)은 그것을 존중하지 않을 것이라고 생각합니다. ~/.profile~/.bashrc
Sudhir Khanger

@donniezazen-예 STUDIO_JDK, 맞춤입니다. 해당 도구에 대한 대안을 사용하고 JAVA_HOME에서 /usr/bin관리 하는 경로로 설정 합니다 alternatives. 업그레이드가 수행되면 변경 alternatives이 필요합니다.
slm

나는 당신이 무엇을 제안하는지 잘 모르겠습니다. 포인트 모두 alternativesJAVA_HOME/usr/bin/java. 또한 JAVA_HOME재정의 처럼 보입니다 alternatives.
Sudhir Khanger

@donniezazen-yes 대안을 사용하여 JAVA 설치를 관리 한 다음이를 사용 JAVA_HOME하여 지정합니다 /usr/bin. 맞습니다 . JAVA_HOME에서 독립적으로 운영 할 수 있습니다 alternatives.
slm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.