CentOS에 대한 JAVA_HOME의 값은 무엇입니까?


37

CentOS에서 yum을 통해 java를 설치했지만 다른 Java 프로그램은 JAVA_HOME 환경 변수가 무엇인지 알아야합니다. 환경 변수 설정에 대해 모두 알고 있지만 무엇으로 설정해야합니까? java에 설치되어 /usr/bin/java있을 수 없습니다!

답변:


54

실제로 찾았습니다

그것은이다 /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/. 나는 그것이 무엇을했는지 알았고 update-alternatives --display java디렉토리를 보여 주었다./usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java


20

잘 모르겠지만 일반 RPMS를 설치하면 JAVA_HOME 값을 다음과 같이 설정할 수도 있습니다.

/usr/java/default/

편집 : 방금 내 홈 시스템을 확인했습니다. 이 파일을 만들었습니다 :

/etc/profile.d/java.sh

그것은 포함합니다 :

export JAVA_HOME=/usr/java/default/

그리고 나는 Sun의 공식 버전을 사용하고 있습니다 : jdk-1.6.0_12-fcs

편집 : 다음은 내 컴퓨터에서 Java를 설정하는 방법입니다 .

자바 설치

Oracle에서 Java JDK 다운로드 및 설치

기본으로 설정

다음 두 명령을 사용하여 OpenJDK 버전 대신이 Java를 사용하십시오.

먼저

alternatives --install /usr/bin/java java /usr/java/default/bin/java 999999 \
           --slave /usr/bin/keytool keytool /usr/java/default/bin/keytool \
           --slave /usr/bin/rmiregistry rmiregistry /usr/java/default/bin/rmiregistry

둘째

alternatives --install /usr/bin/javac javac /usr/java/default/bin/javac 999999 \
           --slave /usr/bin/jar jar /usr/java/default/bin/jar \
           --slave /usr/bin/rmic rmic /usr/java/default/bin/rmic

JAVA_HOME 설정

모든 사용자가 JAVA_HOME 환경 변수를 올바른 값으로 설정했는지 확인하십시오.

echo "export JAVA_HOME=/usr/java/default/" > /etc/profile.d/java_home.sh

오 재미있다. :)
Rory

1
/usr/java/defaultOpenJDK 1.6 및 1.7이 설치된 CentOS 6 상자 에는 없습니다 .
Daniel Serodio

@DanielSerodio 맞습니다. "Oracle에서 Java JDK 다운로드 및 설치"를 명확하게 설명했지만 존재합니다.
Niels Basjes

2

JAVA_HOME을 JDK 또는 JRE의 루트 위치로 설정하려고합니다. 예를 들면 다음과 같습니다.

export JAVA_HOME=/usr/java/jdk1.3

JDK (개발 키트)가 설치되어 있으면 ypu가이를 가리 키기를 원하거나 JRE 경로 (Java Runtime Environment)를 사용하십시오. 그런 다음 bin 디렉토리도 포함하도록 $ PATH 환경 변수를 설정할 수 있습니다.

export PATH=$PATH:/usr/java/jdk1.3/bin

바람둥이를 사용하는 경우 바람둥이 사용자에 대해 CATALINA_HOME을 설정해야 할 수도 있습니다.

export CATALINA_HOME=/path/to/tomcat

시스템에이를 설정하려면 / etc / profile을 편집하거나 /etc/profile.d 폴더에 .sh 파일을 추가하십시오. 특정 사용자의 경우 사용자 ~ / .profile 또는 ~ / .bash_profile 파일에 넣을 수 있습니다.


수퍼 유저 권한으로 실행하는 경우 설치가 사용자를 위해이 작업을 수행하지 않는 적절한 이유가 있는지 궁금합니다.
Kyle Brandt

2

아래는 항상 나를 위해 완벽하게 작동합니다.

[user@base ~]$ locate bin/java
/usr/bin/java
/usr/bin/javac
/usr/bin/javadoc
/usr/bin/javaws
/usr/java/jdk1.6.0_31/bin/java
/usr/java/jdk1.6.0_31/bin/javac
/usr/java/jdk1.6.0_31/bin/javadoc
/usr/java/jdk1.6.0_31/bin/javah
/usr/java/jdk1.6.0_31/bin/javap
/usr/java/jdk1.6.0_31/bin/javaws
/usr/java/jdk1.6.0_31/jre/bin/java
/usr/java/jdk1.6.0_31/jre/bin/java_vm
/usr/java/jdk1.6.0_31/jre/bin/javaws

JAVA_HOME을 /usr/java/jdk1.6.0_31로 설정할 수 있음을 의미합니다.


1

사용되는 Java 버전을 변경하는 경우의 문제를 고려했습니다.

alternatives --config java

그런 다음 하드 코딩 된 코드 JAVA_HOME가 변경됩니다 (현재 내가보고있는 Centos 6.6에서 가장 중요합니다). 즉, 없습니다 /usr/java.

이것은 최선의 방법으로 보이지는 않지만 (실패로 열림) 10 분 동안이 시간을 보냈습니다.

/etc/bashrc에서 설정을 다음과 같이 수정했습니다 JAVA_HOME.

export JAVA_HOME=$(alternatives --display java | grep current | sed 's/link currently points to //' | sed 's|/bin/java||')

당신은에서라도 비슷한 뭔가를해야하지만, 모든없이 grepsed결과를 구문 분석하는. 분명히 alternatives비슷한 솔루션을 제공합니다.

어쨌든 나는 도움이되기를 바랍니다.


최신 정보

아니요 JRE_HOME. JDK / SDK는 분명하지 않습니다 (계속 볼 것입니다).

alternatives오직 기본적으로 JRE에 대해 것 같다. @Niels 답변을 연기하거나 Java를 설치 yum하고 JAVA_HOME을 설정하십시오 (트릭은 설치된 위치를 찾았습니다!).

yum install java-1.8.0-openjdk-devel.x86_64
cd /usr/lib/jvm 

나는주의 java_1.8.0에 대한 심볼릭 링크 /etc/alternatives/java_sdk_1.8.0등 내 $ JAVA_HOME을 설정합니다 /usr/lib/jvm/java_1.8.0. 에서 /etc/bashrc.


0

이상하게도 JAVE_HOME 환경 변수를 갖는 요점은 각 프로그램의 경로를 지정할 필요가 없으므로이 변수를 찾아서이 경로를 얻을 수 있다는 것입니다.

어느 쪽이든 JAVA_HOME에 대한 환경 변수를 찾는 올바른 방법은 echo를 사용하는 것입니다.

[root@host ~]# echo $JAVA_HOME
/usr/java/j2sdk1.4.2_09

이 명령을 실행하면 명령 줄에서 실행중인 버전에 관계없이 경로가 표시됩니다.


2
변수가 설정되지 않았습니다.
Rory

0

re : Centos7, /etc/java/java.conf 파일을 참조하십시오.

여기에 JAVA_HOME은 다음 디렉토리에 있음을 나타냅니다. / usr / lib / jvm / java

나는 그것이 yum을 통해로드 된 jdk의 올바른 버전인지 확인했다.

내 env에는 기본적으로 JAVA_HOME이 설정되어 있지 않으므로 .bash_profile에서 설정했습니다.


0

그래서 사용하여 패키지 관리자가 다양한 위치에 배치 할 수 있습니다 발견 다음은 좀 덜 취성 (당신은 용기를 사용하는 경우 명시 적으로 설치해야합니다)

javaCompiler=$(which javac)
javaBin=$(dirname $(readlink -f $javaCompiler))
javaHome=${javaBin%/*}
export JAVA_HOME=$javaHome

또는 JRE

javaExec=$(which java)
javaBin=$(dirname $(readlink -f $javaExec))
javaHome=${javaBin%/*}
export JRE_HOME=$javaHome
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.