« 2011年6月 | トップページ | 2011年8月 »

2011年7月

2011年7月 5日 (火)

Java 1.6 update 24 と 26 での ImageIcon の違い

Mac OS X で java 1.6 の update 26 を適用後,古いカルテのシェーマ画像を削除しようとしたところ,以下のような例外が出て,できなくなってしまった。
Caused by: java.io.InvalidClassException: javax.swing.ImageIcon; local class incompatible: stream classdesc serialVersionUID = -962022720109015502, local class serialVersionUID = 532615968316031794
        at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
        at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1582)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
   ・・・
update 24→26で,ImageIcon.java の SerialVersionUID が変わってしまったようだ。
 サーバは Ubuntu 8.04LTS であるが,aptitude でインストールした java は update 24 のままであった。update 26 はまだ aptitude ではインストールできないようなので,自力で update 26 をインストールした。
  • Oracle のホームページから,jdk-6u26-linux-i586.bin をダウンロードして展開
    $ ./jdk-6u26-linux-i586.bin
    $ ls -la
    drwxr-xr-x  2 dolphin dolphin     4096 2011-07-05 07:55 ./
    drwxr-xr-x 15 dolphin dolphin     4096 2011-07-05 07:57 ../
    -rwxr-xr-x  1 dolphin dolphin 85141056 2011-07-05 07:53 jdk-6u26-linux-i586.bin
    drwxr-xr-x 10 dolphin dolphin     4096 2011-07-05 07:55 jdk1.6.0_26/
    
  • できた jdk1.6.0_26 を /usr/lib/jvm/ に移動
  • リンクの付け替え
    $ sudo mv java-6-sun java-6-sun.bak
    $ sudo ln -s jdk1.6.0_26 java-6-sun
    $ ls -la
    drwxr-xr-x  5 root    root     4096 2011-07-05 07:55 ./
    drwxr-xr-x 44 root    root    12288 2011-06-22 08:45 ../
    -rw-r--r--  1 root    root     2448 2011-02-24 03:25 .java-6-sun.jinfo
    lrwxrwxrwx  1 root    root       11 2011-07-05 07:55 java-6-sun -> jdk1.6.0_26/
    drwxr-xr-x  8 root    root     4096 2010-02-14 20:16 java-6-sun-1.6.0.17/
    drwxr-xr-x  8 root    root     4096 2011-03-23 10:18 java-6-sun-1.6.0.24/
    lrwxrwxrwx  1 root    root       19 2011-03-23 10:18 java-6-sun.bak -> java-6-sun-1.6.0.24/
    drwxr-xr-x 10 dolphin dolphin  4096 2011-07-05 07:55 jdk1.6.0_26/
    
  • 確認
    $ java -version
    java version "1.6.0_26"
    Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
    Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)
    
  • DISPLAY 環境変数が設定されていると XToolkit 関連の例外が発生するので,.bashrc で設定している場合はコメントアウトしてから再起動
今回の update 26 では,その他にもmonsiaj の表示が乱れたりして,すんなりいかなかった。

« 2011年6月 | トップページ | 2011年8月 »