Ubuntu에서 Oracle Java를 기본 Java로 설정하는 방법은 무엇입니까?


134

JAVA_HOMEOracle Java를 가리 키도록 Ubuntu 의 값을 어떻게 변경 합니까?

그것을 가리켜 야 java-6-sunjava-6-sun-1.6.0.24?

답변:


175

나는 줄을 넣었다.

export JAVA_HOME=/usr/lib/jvm/java-7-oracle

~/.bashrc파일에.

/usr/lib/jvm/java7-oracle을 가리키는 심볼릭 링크 여야합니다 /usr/lib/jvm/java-7-oracle-[version number here].

심볼릭 링크 인 이유는 새 버전의 JVM이있는 경우 .bashrc파일 을 업데이트하지 않아도 자동으로 새 버전을 가리켜 야하기 때문입니다.

JAVA_HOME환경 변수를 전역 적으로 설정 하고 시스템 수준에서 설정하려면 /etc/environment파일 에서 사용을 설정해야 합니다.


4
또는 Oracle (Sun) JDK 대신 OpenJDK를 사용하는 경우 /usr/lib/jvm/java-1.6.0-openjdk-amd64입니다.
pm_labs

7
당신이 사용할 수있는 수출 JAVA_HOME =은 / usr / lib 디렉토리 / JVM / 기본 - 자바 /
noomz

@noomz default-java가 없으면 어떻게 얻습니까?
AHungerArtist

@AHungerArtist openjdk 또는 기타 공식적으로 지원되는 Ubuntu 패키지를 설치하면 얻을 수 있습니다. 불행히도 webupd8 / java ppa를 사용하는 Oracle JDK에서는 지원되지 않습니다. 사실, oracle-java7-set-default패키지가 무엇을하는지는 완전히 명확 하지 않습니다.
Melvyn

파일의 어디에 넣었습니까?
Czipperz

166

글로벌 및 시스템 레벨에서 변경하려는 경우

/etc/environment

이 줄을 추가하십시오 :

JAVA_HOME=/usr/lib/jvm/java-7-oracle


@metdos 위의 답변은 전 세계적으로 또는 시스템 수준에 있지 않습니까?
안드로이드 킬러

1
@AndroidKiller 당신은 Daniel Kullmann이 지적한 링크를 확인 했습니까?
metdos 2016 년

@metdos는 잘 작동하지만 변수를 참조하는 것이 나를 위해 작동 $JAVA_HOME하지 않습니다 ... 이와 같이 사용될 때 해결되지 않으며 PATH=$JAVA_HOME/bin재시작을 시도했지만 아무런 효과가 없습니다. 내가해야합니까 export또는 set JAVA_HOME중이 파일 또는 내 프로필에?
raffian

@Raffian 내가 다른 코너 케이스에 대해 확실하지 않다, 그것은 자세한 내용은, 나를 위해 완벽하게 작동이 방법은 내가 읽어보실 것을 추천 help.ubuntu.com/community/EnvironmentVariables
metdos

53

Oracle의 Java SE Development Kit를 시스템 기본 Java로 설정하려면 여기 에서 최신 Java SE Development Kit를 다운로드 한 다음 파일 시스템에서 원하는 위치에 디렉토리를 작성 하십시오. 예를 들어 /usr/java, 해당 디렉토리에서 방금 다운로드 한 파일을 추출하십시오.

$ sudo tar xvzf jdk-8u5-linux-i586.tar.gz -C /usr/java

이제 JAVA_HOME환경 변수 를 설정하십시오 .

$ JAVA_HOME=/usr/java/jdk1.8.0_05/
$ sudo update-alternatives --install /usr/bin/java java ${JAVA_HOME%*/}/bin/java 20000
$ sudo update-alternatives --install /usr/bin/javac javac ${JAVA_HOME%*/}/bin/javac 20000

다음과 같이 Oracle의 java가 기본 java로 설정되어 있는지 확인하십시오.

$ update-alternatives --config java

당신은 이와 같은 것을 얻습니다 :

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

  Selection    Path                                           Priority   Status
------------------------------------------------------------
* 0            /opt/java/jdk1.8.0_05/bin/java                  20000     auto mode
  1            /opt/java/jdk1.8.0_05/bin/java                  20000     manual mode
  2            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      manual mode

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

왼쪽 숫자 앞에 별표를 표시하고 올바른 숫자를 설정하지 않은 경우 숫자를 입력하고 Enter 키를 눌러 올바른 숫자를 선택하십시오. 이제 자바를 테스트하십시오.

$ java -version

다음과 같은 것을 얻으면 갈 수 있습니다.

java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) Server VM (build 25.5-b02, mixed mode)

또한 루트 권한이 필요하거나 sudoers 그룹에 있으면이를 수행 할 수 있습니다. 우분투 12.04와 데비안 wheezy 에서이 솔루션을 테스트했으며 두 가지 모두에서 작동합니다.


1
예,이 솔루션은 허용 된 것보다 훨씬 깨끗합니다.
simone cittadini

감사를 표현하는 @JayminGajjar 의견은 필요하지 않습니다. 이 웹 사이트에서 좋은 질문 / 답변을 지원하는 메커니즘은 그 질문을 찬성하는 것입니다. 충분한 평판을 얻지 못했지만 의견을 제시 할만한 충분한 정보가 있다면 어떤 시스템과 어떤 OS를 테스트
Barracuda

@Barracuda 나는 이미 투표했다, 당신은 정보에 대해 정확하다, 그것은 우분투 16.10 64 비트 서버 OS에서 나를 위해 일했다 :)
Jaymin Gajjar

20

이 환경 변수를 모든 사용자가 사용할 수있게하고 시스템 시작시 다음을 추가하면 /etc/profile.d/java.sh에 다음을 추가 할 수 있습니다 (필요한 경우 작성).

export JDK_HOME=/usr/lib/jvm/java-7-oracle
export JAVA_HOME=/usr/lib/jvm/java-7-oracle

그런 다음 터미널에서 다음을 실행하십시오.

sudo chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh

내 두 번째 질문은-java-6-sun 또는 java-6-sun-1.6.0.24를 가리켜 야합니까?

java-7-oracle우분투 리포지토리에서 현재 oracle.com에서 다운로드 할 수 있다고 가정하면 가장 최근에 설치된 심볼릭 링크로 항상 가리켜 야합니다 .



10

어떤 종류의 개발을 수행하는 경우 JDK (Java Development Kit)를 가리켜 야합니다. 그렇지 않으면 JRE (Java Runtime Environment)를 가리킬 수 있습니다.

JDK에는 JRE에있는 모든 것이 포함되어 있습니다. Java 프로그램 만 실행하는 경우 JRE 또는 JDK를 가리킬 수 있습니다.

JAVA_HOME 사용중인 현재 Java를 기반으로 설정해야합니다 . readlink현재 Java에 대한 기호 링크의 값을 인쇄 sed하고 JRE 디렉토리에 맞게 조정합니다.

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

JAVA_HOME을 JDK로 설정하려면 한 폴더 이상 더 이동해야합니다.

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")


5

참조 ; 운영

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를 위해.


다른 접근법 :java -XshowSettings 2>&1 | grep -e 'java.home' | awk '{print "JAVA_HOME="$3}' | sed "s/\/jre//g" >> /etc/environment
Xdg
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.