[linux] 우분투에서 $ JAVA_HOME을 쉽게 변경 가능하게 [닫기]

우분투에서는 Java 5와 6 사이에서 JAVA_HOME 환경 변수를 앞뒤로 전환하고 싶습니다.

터미널을 열고 다음을 입력하여 JAVA_HOME 환경 변수를 설정하십시오.

export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun

그리고 같은 터미널 창에서 다음을 입력하여 환경 변수가 업데이트되었는지 확인합니다.

echo $JAVA_HOME

그리고 나는 /usr/lib/jvm/java-1.5.0-sun 을 보게 될 것입니다. 또한 ~ / .profile을 수정하고 JAVA_HOME 환경 변수를 /usr/lib/jvm/java-1.5.0-sun으로 설정했습니다.

그리고 이제 문제가 생겼습니다. 새 터미널 창을 열고 echo $ JAVA_HOME 을 입력하여 JAVA_HOME 환경 변수를 확인하면 JAVA_HOME 환경 변수가 Java 6으로 되돌아갔습니다. JAVA_HOME 환경 변수가 Java 5로 설정되어 있다고 가정합니다 (아마도 ~ / .profile에서 수정했기 때문에).

내가 로그 아웃하지 않고 다시 내 JAVA_HOME 환경을 변경 (및 그 환경 변수 변화 할 수 있다는 것을이 때문에 주위에 방법이 있나요 스틱을 모든 새 터미널 창에서)는?



답변

환경 변수를 전역 /etc/environment파일에 넣으십시오 .

...
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
...

변수를 업데이트하려는 모든 쉘에서 “source / etc / environment”를 실행하십시오.

$ source /etc/environment

작동하는지 확인하십시오.

$ echo $JAVA_HOME
$ /usr/lib/jvm/java-1.5.0-sun

로그 아웃이 필요하지 않습니다.

터미널에서만 JAVA_HOME 환경 변수를 설정하려면 ~ / .bashrc 파일 에서 설정 하십시오.


답변

이것은 아마도 문제를 해결할 것입니다 :
https://help.ubuntu.com/community/EnvironmentVariables

세션 전체 환경 변수

특정 사용자 환경에 영향을주는 방식으로 환경 변수를 설정하려면 사용자의 홈 디렉토리에있는 특정 쉘 스크립트 파일에 값을 설정하는 명령을 배치하지 말고 다음을 사용해야합니다.

~ / .pam_environment-이 파일은 특별히 사용자 환경을 설정하기위한 것입니다. 스크립트 파일은 아니지만 한 줄에 하나씩 할당 표현식으로 구성됩니다.

권장하지 않음 :

~ / .profile-환경 변수 지정을 배치하기에 가장 적합한 파일 일 것입니다. 시작 프로세스 데스크탑 세션 중에 DisplayManager와 텍스트 콘솔에서 로그인 할 때 로그인 쉘에 의해 자동으로 실행되기 때문입니다.


답변

다음 단계를 시도하십시오.

– “etc \ profile”을 편집 할 것입니다. 환경 변수는 파일 맨 아래에 입력해야합니다. 우분투는 루트 폴더에 대한 액세스 권한을 부여하지 않으므로 터미널에서 몇 가지 명령을 사용해야합니다

1 단계 : 터미널을 시작합니다. 명령을 입력하십시오 :gksudo gedit /etc/profile

2 단계 : 프로필 텍스트 파일이 열립니다. 페이지 하단에 환경 변수를 입력하십시오 ……… . export JAVA_HOME=/home/alex/jdk1.6.0_22/bin/java

export PATH=/home/alex/jdk1.6.0_22/bin:$PATH

3 단계 : 파일을 저장하고 닫습니다. 환경 변수가 echo 명령을 사용하여 설정되어 있는지 확인 …….. 예를 echo $PATH


답변

변수 정의를 ~/.bashrc파일 합니다.

bash 맨 페이지에서 :

로그인 쉘이 아닌 대화식 쉘이 시작되면 bash는 /etc/bash.bashrc 및 ~ / .bashrc (있는 경우)에서 명령을 읽고 실행합니다.


답변

일반적으로 터미널 창에서 변수 만 변경하려면 .bashrc새 터미널을 열 때마다 소스 파일로 변수를 설정하십시오 . .profile새 터미널을 열 때마다 파일이 제공되지 않습니다.

문제의 .profile과 .bashrc의 차이점을 참조하십시오.
.bashrc, .bash_profile 및 .environment의 차이점은 무엇입니까?

.bashrc문제를 해결해야합니다. 그러나 우분투를 사용하고 있기 때문에 올바른 해결책이 아닙니다. 관련 Ubuntu 도움말 페이지 ” 세션 전체 환경 변수 “를 참조하십시오. 따라서 그것이 효과 .profile가 없는 것은 놀라운 일 이 아닙니다. 우분투 12.04와 xfce를 사용합니다. 내가 설정했는데 .profile로그 아웃하고 로그인해도 효과가 없습니다. 비슷한 경험이 있습니다 . 당신은 사용 할 수 있습니다 그래서 .pam_environment파일을 완전히 잊어 .profile하고 .bashrc. 그리고 그것은 .pam_environment스크립트 파일이 아닙니다.


답변

을 살펴보십시오 . 옵션 ( 예 : 옵션)을 선택 하려면 로그인 셸bash(1) 이 필요합니다 .~/.profile-l


답변

나는 이것이 오랫동안 차가운 질문이라는 것을 알고 있지만 새로운 또는 최근 주요 Java 릴리스가있을 때마다 나타납니다. 이제 이것은 6과 7 스와핑에 쉽게 적용됩니다.

나는 이것을 과거와 update-java-alternatives같이 했다 :
http://manpages.ubuntu.com/manpages/hardy/man8/update-java-alternatives.8.html