데비안 / 우분투에서 JAVA_HOME을 확인하는 방법은 무엇입니까?


95

우분투에서는 여러 개의 JVM을 동시에 가질 수 있습니다. 기본 설정은로 선택되어 update-alternatives있습니다. 그러나 이것은 debian 정책JAVA_HOME 으로 인해 환경 변수를 설정하지 않습니다 .

Java 응용 프로그램을 시작하는 런처 스크립트 (bash)를 작성 중입니다. 이 Java 애플리케이션에는 JAVA_HOME환경 변수가 필요합니다 . 그렇다면 현재 선택한 JVM의 경로를 얻는 방법은 update-alternatives무엇입니까?

답변:


137

JRE의 경우 다음과 같은 트릭이 필요합니다.

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

17
JRE 대신 JDK의 홈이 필요했지만 JAVA_HOME = $ (readlink -f / usr / bin / javac | sed "s : bin / javac ::") 감사합니다!
Witek

내가 명령을 시도했을 때 echo $(readlink -f /usr/bin/java | sed "s:bin/java::"), 출력은 /usr/lib/jvm/java-7-oracle/jre/아니었다/usr/lib/jvm/java-7-oracle/
Sumit Ramteke

rsaddey에 제공된 코드 가 올바르게 작동
Sumit Ramteke

43

danadam의 솔루션은 필요에 따라 JDK (예 : JRE 아님) 경로를 검색하기 위해 쉽게 채택 할 수 있습니다.

JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
  • JDK (JRE 아님)에 포함 된 javac Java 컴파일러 (java 대신)를 찾습니다.
  • 후행 /가 없습니다 (s : bin ... 대신 sed s : / bin ...에 의해 잘림)

12

export JAVA_HOME=$(dirname $(dirname $(readlink -f /usr/bin/java)))

에서가 .bashrc나 편리했다.


9

그래서, 당신은이 명령이 당신을 위해 아무것도하지 않는다고 말하고 있습니까?

sudo update-alternatives --config java 

2
JAVA_HOME을 설정한다고 가정합니까? 업데이트 대안이 모든 Java 관련 대안을 업데이트하지는 않으므로 update-java-alternatives가 Java를 업데이트하는 더 좋은 방법이라는 것을 알았습니다. askubuntu.com/questions/141791
James McMahon

사실이지만 업데이트 대안이 있지만 update-java-alternatives가 설치되지 않은 Linux 인스턴스가 발생했습니다.
djangofan 2016 년

3

나는 자바를 설치했다.

sudo apt-get install openjdk-7-jre-headless

그런 다음 위치를 찾기 위해

ls -al /etc/alternatives/java

2

danadams의 확장으로 대답 :

우선, 우선 순위가 "3"인 2 번째 Java JRE를 3 번째 java 옵션으로 설치하십시오.

sudo alternatives --install /usr/lib/jvm/jre jre /opt/IBM/java/jre/bin/java 3

그런 다음 다음을 나열 할 수 있습니다.

update-alternatives --list java

다음을 사용하여 대안을 손으로 설정할 수 있습니다.

sudo alternatives --config java /opt/IBM/java/jre/bin/java

그런 다음 스크립트는 다음과 같이 즉석에서 설정할 수 있습니다.

sudo alternatives --set java /opt/IBM/java/jre/bin/java
JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

이것은 'sed'명령이 수행하는 작업을 더 잘 보여줍니다. 여전히 javaw 및 javac 등에 대한 링크를 설정해야하지만 각각 별도로 수행됩니다.


1

얼마 전에 우분투 포럼에서 Java 웹 사이트에서 최신 JRE / JDK를 설치하는 방법에 대한 자습서를 만들었습니다. 또한 JRE / JDK 위치를 PATH 변수에 추가하여 시스템 전체에서 사용 가능하게하는 방법에 대해서도 설명합니다. 원하는 경우 주제 끝에 언급 된 JAVA_HOME을 스크립트에 추가 할 수도 있습니다.

그것을 확인하십시오 : http://ubuntuforums.org/showthread.php?t=1437100


1

java가 update-alternativesPATH 변수로 수동으로 구성 되거나 추가 된 경우 하드 코드 "/usr/bin/java"가 필요 하지 않습니다. 내 .bashrc 에서이 솔루션을 사용합니다.

export JAVA_HOME=$(readlink -m $(which java)/../..)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.