728x90
반응형

1. 날짜: 2012.04.03 ~ 2012.04.04

2. 문제점: 리눅스에 자바를 설치하고 환경 변수 설정을 해줘도 java -version 시 1.4.2가 나옴

3. 환경: Redhat, Linux, Java JDK 1.6.0


4. 해결

① Java 설치

레드햇은 rpm을 이용해서 패키지를 관리해야 한다.

우선 자바 홈페이지에서 버전에 맞는 JDK를 다운로드 한다.

그리고 해당 폴더로 가서

 #chmod 755 [JDK 파일명]

 #./[JDK 파일명]

을 해주면 /usr/java/[JDK 파일명]에 설치가 된다.

나의 경우 /usr/java/jdk1.6.0에 설치가 되었다.

이건 root 권한으로 설치를 해야 한다 :)


② 환경변수 설정

윈도우에서나 리눅스에서나 Java를 사용하려면 환경 변수 설정을 해줘야 한다.

 # vi /etc/profile

 profile 파일 제일 마지막 부분에 다음을 추가한다

 

 #JAVA SETTING

 PATH=$PATH:$HOME/bin

 JAVA_HOME=/usr/java/jdk1.6.0

 export JAVA_HOME

 PATH=$PATH:$JAVA_HOME/bin

 CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/*:.

 환경변수 설정을 완료하고 저장하고 나온 후 다음 명령행을 실행해 환경설정을 로드한다

 # source /etc/profile

 그리고 java 설치가 제대로 되었는 지 확인하기 위해 버전 확인을 해본다!

 # java -version

 

 java version "1.6.0"

 Java(TM) SE Runtime Environment (build 1.6.0-b105)

 Java HotSpot(TM) 64-Bit Server VM (build 1.6.0-b105, mixed mode)

 


나의 경우엔 환경변수 설정까지 다 해줬는데 버전이 1.6.0으로 나오지 않고 1.4.2로 나왔다.

이 때문에 버전 업이 제대로 되지 않았고 1.6.0 버전의 Java를 사용하려면

/usr/java/jdk1.6.0/bin/java *.java

를 쳐서 해야 하는 불상사가 발생했다 -_-;

물론 이건 제대로 설치가 되지 않은 것, 이기 때문에 이것을 해결하기 위해 구글링 구글링을 해본 결과 해결책을 찾았다!


문제의 원인은 alternatives로 버전 관리가 되어지고 있었기 때문이었는데, 역시 해결책도 있었다.

 // 우선 Java의 위치를 확인

 # which java

 /usr/bin/java


 # ls -al /usr/bin/java

 lrwxrwxrwx  1 root root 22 Sep 21  2005 /usr/bin/java -> /etc/alternatives/java


 /usr/bin/java는 소프트 링크인데, 이 링크의 실제 위치는 /etc/alternatives/java를 가리킨다.

 alternatives는 /etc/alternatives에 있는 소프트링크를 관리하고

 여기에 있는 소프트 링크는 실제 실행파일을 가리키는 방식이다.

 한 마디로 바로가기 같은 것 같은…

 다음 커맨드를 통해 alternatives를 바꿀 수 있다.


 # alternatives --install /usr/bin/java java /usr/java/jdk1.6.0/bin/java 1

 # alternatives --config java


 There are 2 programs which provide 'java'.


   Selection    Command

 -----------------------------------------------

 *+ 1           /usr/lib/jvm/jre-1.4.2-gcj/bin/java

    2           /usr/java/jdk1.6.0/bin/java


 Enter to keep the current selection[+], or type selection number: 2


 여기서 해당 위치에 맞는 숫자를 입력하면 된다.

 내 경우 2번이 JDK 1.6.0이었다 :)

 이렇게 Java의 소프트링크를 바꿔주면 1.4.2 버전으로 나오던 게 1.6.0으로 제대로 인식된다!


 # java -version

 java version "1.6.0"

 Java(TM) SE Runtime Environment (build 1.6.0-b105)

 Java HotSpot(TM) 64-Bit Server VM (build 1.6.0-b105, mixed mode)



5. 참고 페이지

http://adad.tistory.com/140

 

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,