Java も環境依存2008年10月06日 16時05分25秒

最近は「Write once, run everywhere」と言った標語はめっきりと聞かなくなった。Java もベータバージョンから、やっと 1.0 が出た頃から、1.2 あたりまでは盛んに唱えていた。ここ数年は以前程、見かける事は無い。

Java はコンパイルするとは言え、落とすコードは中間で止まり。機械語までには落とさない。VM を使って実行環境を提供するので、別に他にも様々なスクリプト言語が多様な環境で動くのと比べると、Java は優れているどころか、むしろ劣っている。

言語によって適材適所があるので、Java を選ぶ事もある。ほとんどの機能は、OS 等による差異も無い一般的な処理が多いので普段はそれほど困ったことは無い。

しかし、IO 関連になると、UNIX 上で行なう処理をそのまま行なっても、例外が投げられたり、うまくいかなかったりと結構違いが大きいのに最近気が付いた。PhotoView でも幾つかの問題点を見つけて修正した。しかし、今の時点ではWindows での画像の削除が機能していない様だ。一度、Windows に開発環境を移す必要がありそうだ。

Java の IO では、ドライブ文字の区切りの : が取得できない。自分のプログラムで、直接調べる必要があった。結局、環境依存の値を使っている。他にも、微細な異差があるようで、UNIX 上で開発した物がそのまま動いてはいない。