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

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과 대안 사용의 차이점은 무엇입니까?



답변

대안

대안은 도구 제어 하의 링크를 사용하여 설치된 소프트웨어의 위치를 ​​관리하는 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 설치를 사용하고 다른 도구는 완전히 다른 도구를 사용할 수 있습니다.

참고 문헌