Translate

2013/10/25

Install Java for Debian system(or Ubuntu)


Java

  • JAVAand DEBIAN
$ apt-get install default-jre or $ apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts or $ ./jre-***.bin (설치 위치 : /usr/lib/jvm)
^이 방법 말고 deb파일 만드는 방법을 이용하자

java는 라이센스 문제로 인해서 데비안용으로 만들 open버전이 있다. 물론 데비안에서 제공하는 버전도 있지만 그건 버전이 낮기 때문에 java홈페이지에서 다운받은 파일을 사용한다.(jdk 다운로드)

1. java -package 설치

$ sudo apt-get install java -package

2. make-java를 이용해서 deb 파일 만들기
일단 java홈페이지에서 파일을 받는다.(jdk-7u3-linux-x64.tar.gz을 예제로 한다.)
파일은 .bin파일이던 .tgz이던 상관없다. make-java라는 명령어는 root로는 실행될 수 없기 때문에 일반 사용자로 실행을 해야한다.
fakeroot가 없다면 설치한다.($ sudo apt-get install fakeroot)
이제 deb 파일을 만들어 보자


$ fakeroot make-jpkg jdk-7u3-linux-x64.tar.gz
Creating temporary directory: /tmp/make-jpkg.o0KkIq2oQl
Loading plugins: /usr/share/ java -package/common.sh /usr/share/ java -package/j2re.sh /usr/share/ java -package/j2sdk-doc.sh /usr/share/ java -package/j2sdk.sh /usr/share/ java -package/j2se.sh /usr/share/ java -package/oracle-j2re.sh /usr/share/ java -package/oracle-j2sdk-doc.sh /usr/share/ java -package/oracle-j2sdk.sh

Detected Debian build architecture: amd64
Detected Debian GNU type: x86_64-linux-gnu

Detected product:
Java (TM) Development Kit (JDK)
    Standard Edition, Version 1.7.0+update3
    Oracle(TM), Inc.
Is this correct [Y/n]: Y

Checking free diskspace: done.

In the next step, the binary file will be extracted. Probably a
license agreement will be displayed. Please read this agreement
carefully. If you do not agree to the displayed license terms, the
package will not be built.

Press [Return] to continue:



Testing extracted archive... okay.

Create debian package:
    dh_testdir
...


이제 oracle-j2sdk1.7_1.7.0+update3_amd64.deb 파일이 만들어 졌다.(참고로 필자는 64bit 환경을 사용한다.) 설치를 한다.
아마도 default-jre나 openjdk가 설치되었을 것이다. 이 패키지를 지우지는 말고 그냥 놔둔다.(일부 패키지의 경우 의존성이 걸려있기 때문이다.)


3. jdk를 기본으로 설정
먼저 oracle-j2sdk1.7_1.7.0+update3_amd64.deb 파일을 실행하여 설치한다.
데비안에는 여러가지 버전이 설치되었을 경우 기본값을 설정할 수 있는 기능이 있다. 바로 update-alternatives이다.

아래와 같이 두 가지 방법으로 설정을 할 수 있지만 제대로 설정을 하기 위해서는 jinfo를 수정해야한다.
이 글 맨 아래를 참고한다.


$ sudo update-alternatives --config java
대체 항목 java에 대해 (/usr/bin/ java제공) 3개 선택이 있습니다.

  선택       경로                                          우선순  상태
------------------------------------------------------------
  0            /usr/lib/jvm/ java -6-openjdk-amd64/jre/bin/ java    1061      자동 모드
* 1            /usr/lib/jvm/j2sdk1.6-oracle/jre/bin/ java         315       수동 모드
  2            /usr/lib/jvm/j2sdk1.7-oracle/jre/bin/ java         317       수동 모드
  3            /usr/lib/jvm/ java -6-openjdk-amd64/jre/bin/ java    1061      수동 모드

기본 사항[*]을 사용하려면 엔터, 다른 것을 사용하려면 번호를 입력하십시오: 2
update-alternatives: /usr/lib/jvm/j2sdk1.7-oracle/jre/bin/ java사용해서 수동 모드에서 /usr/bin/ java java ) 제공.

필자의 경우에는 이전에도 이런 방법으로 설치했기 때문에 j2sdk1.6이 설치되어 있다...
선택하고자 하는 버전 번호를 선택하면 된다.

다음 명령어로 default-java에도 링크를 걸어준다.

          $ cd /usr/share/lib/jvm
$ sudo rm default- java
$ sudo ln -s j2sdk1.7-oracle/ default- java
$ ls -al
합계 104
drwxr-xr-x   7 root root  4096  7월 28 18:48 .
drwxr-xr-x 138 root root 69632  7월 26 21:30 ..
-rw-r--r--   1 root root  2162  7월 28 18:26 .j2sdk1.7-oracle.jinfo
-rw-r--r--   1 root root  2387  6월 26 22:24 . java -1.6.0-openjdk-amd64.jinfo
lrwxrwxrwx   1 root root    16  7월 28 18:48 default- java -> j2sdk1.7-oracle/
drwxr-xr-x   3 root root  4096  7월 28 18:46 j2sdk1.6-oracle
drwxr-xr-x   9 root root  4096  7월 28 18:48 j2sdk1.7-oracle
lrwxrwxrwx   1 root root    20  2월 27 20:05 java -1.6.0-openjdk-amd64 -> java -6-openjdk-amd64
drwxr-xr-x   5 root root  4096  3월 20 17:48 java -6-openjdk-amd64
drwxr-xr-x   3 root root  4096  3월 20 17:48 java -6-openjdk-common
drwxr-xr-x   5 root root  4096  7월  6 10:23 java -7-openjdk-amd64

설정이 잘 되었다는 걸 확인할 수 있다...

4. 브라우저 플러그인
※ java7은  브라우저에서 cpu 폭주를 이르키고 특히 크롬에서 작동을 멈추는 현상이 발생한다.  그래서 사용하지 않기로 했다. → 파폭에서만 사용을 한다. 그렇게 설정을 했다. 현재는 1.6 버전으로 돌아갔다.

설치만 해도 정상적으로 연결이 되는 듯하다.

일단 파폭이나 크롬에서도 설정이 잘 동작하는지 확인한다.(about:plugins)
잘 동작이 되면 상관 없으나 그렇지 못할 경우에는 플러그인을 연결 시켜주어야한다. 
주의 사항은 기존에 나와있는 libnpjpj.so를 링크시키는 방법은 사용하지 말자

$ sudo update-alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /usr/lib/jvm/j2sdk1.6-oracle/jre/lib/amd64/libnpjp2.so 1
$ sudo update-alternatives --config mozilla-javaplugin.so


만약 크롬에서 설정이 안될 경우에는 /opt/google/chrome에 plugins 디렉토리를 만들어서 링크를 걸어준다.


다음 명령어로도 설정을 할 수 있다.
# update- java -alternatives -l : 설치된 java확인
# update- java -alternatives --set $ java -version : 해당 버전을 기본으로 설정

p.s. 
20121201
$ sudo update- java -alternatives --set j2sdk1.7-oracle
update-alternatives: 오류: no alternatives for jhat
update-alternatives: 오류: no alternatives for jrunscript
update-alternatives: 오류: no alternatives for schemagen
update-alternatives: 오류: no alternatives for wsgen
update-alternatives: 오류: no alternatives for wsimport
update-alternatives: 오류: no alternatives for xjc

이 오류 왜 나는지 모르겠다...

2013.10.07 
여전히 오류가 발생하고 있다...

→ 결과적으로 첫번째 방법을 사용한다.

아래 방법을 사용한다.
  • update-alternatives 사용 방법
$ sudo update-java-alternatives --set <alternative>
시에 오류가 나는데 이때는 jinfo를 수정해야 한다.

$ cd /usr/lib/jvm
$ ls -a
.jdk-7-oracle-x64.jinfo
.java-1.6.0-openjdk-amd64.jinfo

이 파일을 열고 오류가 나는 항목을 추가해 준다.

$ sudo vi .jdk-7-oracle-x64.jinfo
...
jdk xjc /usr/lib/jvm/jdk-7-oracle-x64/bin/xjc
jdk wsimport /usr/lib/jvm/jdk-7-oracle-x64/bin/wsimport
jdk wsgen /usr/lib/jvm/jdk-7-oracle-x64/bin/wsgen
jdk schemagen /usr/lib/jvm/jdk-7-oracle-x64/bin/schemagen
jdk jrunscript /usr/lib/jvm/jdk-7-oracle-x64/bin/jrunscript
jdk jhat /usr/lib/jvm/jdk-7-oracle-x64/bin/jhat
...

그리고 나서 

$ cat .jdk-7-oracle-x64.jinfo | grep -E '^(jre|jdk)' | awk '{print "/usr/bin/" $2 " " $2 " " $3 " 30 \n"}' | xargs -t -n4 sudo update-alternatives --verbose --install
$ sudo update-java-alternatives --set jdk-7-oracle-x64

이제 오류가 나지 않을 것이다. 

※ 브라우저 플러긴의 경우 계속 오류가 나는데
$ sudo update-alternatives --verbose --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /usr/lib/jvm/jdk-7-oracle-x64/jre/lib/amd64/libnpjp2.so 30

물론 이렇게 추가하면 추가는 되지만 이상하게 오류는 계속 발생한다.



※ 최신 버전(1.7)에는 fontconfig할 필요없이 바로 한글이 잘 나오는 거 같다. ControlPanel로 확인.
TIP. ControlPanel시에 캐쉬 디렉토리 설정할 수 있음


Ref.


  • jnlp 실행
$ sudo apt-get install icedtea-netx 
$ sudo javaws ./<파일명>.jnlp



댓글 없음:

댓글 쓰기

Template by Aliya H.