Top > java

広告
  • 追加された行はこの色です。
  • 削除された行はこの色です。
  • java へ行く。

*javaを使う [#q343d544]
最近はいろいろなOSで動作するようにjavaで書かれたプログラムも多い。~
Linuxでは[[gcj:http://gcc.gnu.org/java/]]([[debianパッケージgcj:http://packages.debian.org/gcj]])と言うjavaコンパイラがあってjavaプログラムを実行できる。~
ところがプログラムによっては
 Exception in thread "main" java.lang.ExceptionInInitializerError
   at java.lang.Class.initializeClass(libgcj.so.90)
   at ....
   ...
や
 Caused by: java.awt.IllegalComponentStateException: component java.awt.Label not showing
   at ......

 Exception in thread "main" java.lang.NoClassDefFoundError:

 Caused by: java.lang.ClassNotFoundException:
というエラーが出て動かないものもある。~
そういうときはSunが提供するjavaエンジンを使うとよく、最近はDebianパッケージでも「[[sun-java*-**:http://packages.debian.org/sun-java]]」というパッケージがあって簡単にインストールできる。

ところが、ただこれを入れるだけでは動かない。~
というのも上のgcj(libgcj)が優先されてsun-javaが使われないからだ。~
この問題解決は[[2chのレス:http://2chlinux.dtdns.net/2ch-debian/1232335840/791.html]]にある通り
 # update-alternatives --set java /usr/lib/jvm/java-6-sun/jre/bin/java
とやるとsun-javaの方が優先されて動くようになる。(パスはバージョンによって違うので注意)~
もしかするとgcjに依存するプログラムが動かなくなるかもしれない。

/usr/share/doc/sun-java6-jre/README.alternativesによると
 # update-java-alternatives --set java-6-sun
とやればすべて変更してくれる。

広告

リロード   差分   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS