Top > 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 とやればすべて変更してくれる。 広告 |