우분투에서는 여러 개의 JVM을 동시에 가질 수 있습니다. 기본 설정은로 선택되어 update-alternatives
있습니다. 그러나 이것은 debian 정책JAVA_HOME
으로 인해 환경 변수를 설정하지 않습니다 .
Java 응용 프로그램을 시작하는 런처 스크립트 (bash)를 작성 중입니다. 이 Java 애플리케이션에는 JAVA_HOME
환경 변수가 필요합니다 . 그렇다면 현재 선택한 JVM의 경로를 얻는 방법은 update-alternatives
무엇입니까?
답변
JRE의 경우 다음과 같은 트릭이 필요합니다.
JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
답변
danadam의 솔루션은 필요에 따라 JDK (예 : JRE 아님) 경로를 검색하기 위해 쉽게 채택 할 수 있습니다.
JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
- JDK (JRE 아님)에 포함 된 javac Java 컴파일러 (java 대신)를 찾습니다.
- 후행 /가 없습니다 (s : bin … 대신 sed s : / bin …에 의해 잘림)
답변
export JAVA_HOME=$(dirname $(dirname $(readlink -f /usr/bin/java)))
에서가 .bashrc
나 편리했다.
답변
그래서, 당신은이 명령이 당신을 위해 아무것도하지 않는다고 말하고 있습니까?
sudo update-alternatives --config java
답변
나는 자바를 설치했다.
sudo apt-get install openjdk-7-jre-headless
그런 다음 위치를 찾기 위해
ls -al /etc/alternatives/java
답변
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 등에 대한 링크를 설정해야하지만 각각 별도로 수행됩니다.
답변
얼마 전에 우분투 포럼에서 Java 웹 사이트에서 최신 JRE / JDK를 설치하는 방법에 대한 자습서를 만들었습니다. 또한 JRE / JDK 위치를 PATH 변수에 추가하여 시스템 전체에서 사용 가능하게하는 방법에 대해서도 설명합니다. 원하는 경우 주제 끝에 언급 된 JAVA_HOME을 스크립트에 추가 할 수도 있습니다.
그것을 확인하십시오 :
http://ubuntuforums.org/showthread.php?t=1437100