技術的雑談-JDKを切り替えた時のJacORB(などのLibrary)
環境
JDK1.5.0_03からJDK1.4.2_08に切り替えた時、+ JacORB,Log4Jなどのライブラリ
(ソースを取ってきて自分でコンパイルした場合)
現象
JDK1.5では動くのにJDK1.4では動かない。
もちろん自分で作ったソースはコンパイルしなおしたのに…。
対処
外部のLibrary(Log4JとかJacORBとか)の再コンパイルを忘れていませんか?
JDK1.5.xでコンパイルしたLibraryは当然ながらJDK1.4.xの環境ではまともに動きません。
私の場合はORB.init()で「StringBuilder Classがないよ!」と怒られました。
JacORBとかに限らず、SourceからCompileが必要なパッケージは開発環境と実行環境のJDKのバージョンにご注意ください。
ちなみにSunからのアナウンスでは「JDK1.5はJDK1.4で作ったClassもちゃんと動かせます!」とアナウンスしています。
どのバージョンで使うかわからないClassで、公開配布するものやLibraryのようなものは、JDK1.5の機能を使っていない限りJDK1.4でコンパイルしておきましょう。
またはjavacに「-target 1.4」をつけておくとか。
履歴
2005/7/14 -- 初版
技術的雑談へ戻る