- - PR -
5.0で記述した.javaファイルを1.3環境で実行したい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-10-13 20:17
はじめましてtsutomuと申します。
5.0の書式で記述した.javaファイルをなんとか 1.3上で実行出来ないかと難儀しています。 1.3の環境で5.0の.javaファイルをそのまま コンパイルしようとすると当然のように 「enumが解決出来ない」、「java.util.loggingが無い」 などと怒られてしまいます。 対策として以下の2つの方針を考えました。 [対策1]デコンパイルで1.3の.javaを取得 一旦5.0の環境でコンパイルし、.classになったファイルを デコンパイルして1.3の.javaファイルを取得し、 その.javaファイルを1.3で再コンパイルする。 ※↓のサイトなどで5.0の.classをデコンパイルして、5.0特有の 記述が無くなっている様子が見受けられるのでデコンパイルで 1.3互換の.javaが取得出来るのかな?という発想が発端です。 http://journal.mycom.co.jp/column/java/ http://www.javaworld.jp/technology_and_programming/-/18161.html [対策2].classの追加で1.3でコンパイル 1.3の環境に1.4から追加されたclassを次々CLASSPATHに 追加していって、コンパイルエラーを無くす。 ※勘です。。。 最初に1.の方針で調査し、jad1.5.8gを使用してデコンパイルを 以下のコマンドで実行したところ jad -o -r -sjava -dsrc **/*.class コンソールに以下のメッセージがいくつか表示され (yahoo翻訳によると「方法チェックにおいて全ての例外ハンドラーを 分解することができるというわけでありませんでした」) Couldn't resolve all exception handlers in method check デコンパイルされた.javaファイルには唐突に exception; という行が存在してコンパイルは1.3でも5.0でも通りませんでした。 jadを実行するオプションがまずかったのか、そもそもjadには 向かない書式があるのか判断が付かなく困っています。 今後の調査の方針ですが 1. [対策1]のままjadのオプションを調査する。 2. [対策1]jad以外のデコンパイルツールを調査する。 3. [対策2]に方針を切り替えて1.3環境のCLASSPATHに次々.classを追加する。 とどの方向に向かったものかと現状悩んでいます。 (そもそもの[対策1]と[対策2]の着目にも自信が無いのですが。。。) アドバイス、ご意見などありましたらよろしくお願いします。 [ メッセージ編集済み 編集者: tsutomu 編集日時 2006-10-13 20:22 ] |
|
投稿日時: 2006-10-13 21:20
[対策3]5.0の環境を構築する。
これが正解だと思います。 1.5で作成したものが1.3で互換性がある内容とは限りません。 可変長変数とかいい例かと思います。 [対策3]5.0の環境を構築する が選べない理由は分りませんが 実行不可能なものがある限り ソースを書き直すかしないといけません。 |
|
投稿日時: 2006-10-14 01:17
JDK1.4対応とあるので1.3はどうなのかわかりませんが、こんなのがあります。
http://retroweaver.sourceforge.net/ -target jsr14 でも JDK1.4 までですね。うーん残念。 http://yusuke.homeip.net/diary/2005/10/19/1129706786000.html 答えになってなくてゴメンナサイ。 |
|
投稿日時: 2006-10-16 12:24
あすかさん、インギさん、
ご返信ありがとうございます。 >あすかさん 現状、1.3環境以外に変更するころが出来ません。 そうするとやはりソースの書き直しになりますか。。。 >インギさん こういったツールの存在は知りませんでした。 貴重な情報ありがとうございます。 1.4環境を構築出来ればこのツールが使えそうですね。 調査を継続して、状況が変わったらまた報告させて頂きます。 |
|
投稿日時: 2006-10-18 15:56
>インギさん
教えて頂いたRetroweaverの1.2.5で -target 1.3を指定してみたところ 変換後のjarを1.3環境で動作させる ことに成功しました。 #最新の2.0Beta2はBeta版のためか #変換後の実行で失敗しました 大変助かりました。 本当にありがとうございました。 [ メッセージ編集済み 編集者: tsutomu 編集日時 2006-10-18 15:57 ] |
1