1

Java 1.4 を使用してコンパイルされたサードパーティの JAR ファイルがあります。jar ファイルを Java 1.6 に対応させるツールはありますか? (「retrotranslator」のようなものですが、その逆は何ですか)。
クラス ファイルを逆コンパイルして 1.6 で再コンパイルしようとしましたが、失敗します。


問題は次のとおりです。

私のプロジェクトでは 'rsadapter.jar' を 5.1 で使用しており、Eclipse 2.0 + JDK 1.4 でプロジェクトをセットアップしましたが、以前は正常に動作していました。今、私は Java 1.6 と Eclipse Ganymede に (要件に従って) 移行しましたが、同じプロジェクト (まったく同じセットアップ) が「rsadapter.jar」にクラス ファイルが見つからないという不平を言い始めました。JARも明示的にクラスパスに入れましたが、それでもクラスをロードできませんでした。次に、Java コンパイラのバージョンを 1.4 に変更すると、動作し始めました。

よろしく、
- アシッシュ

4

3 に答える 3

5

JDK 1.4 でコンパイルされたクラスは、Java 6 ランタイムでそのまま使用できるはずです。実際に問題が発生した場合は、それについて説明してください。


更新:これは、「デフォルト」パッケージ (つまり、パッケージではない) の型でのみ再現できます。使用しようとしているクラスはデフォルト パッケージに含まれていますか? また、コンパイルに使用されたJDKのバージョンに関係なく、これは私に起こります。


更新:少し調査した結果、名前付きパッケージから名前なしパッケージの型を参照することはできないことに気付きました。理にかなっていますが、間違いなくあなたが遭遇しているものではありません。

JDK 1.4.2_19 でコードをコンパイルし、Java 6 Eclipse プロジェクトで問題なく利用できます。この問題はあなたの環境に固有のものだと思います。この状況では、Eclipse をバックアップし、すべて (JDK インストール、ワークスペース、プロジェクト) を最初から再作成して、それをクリアできるかどうかを確認します。

于 2009-05-13T18:33:19.923 に答える
1

Java 1.4.x で書かれたいくつかのレガシー コードで別の問題が発生しました。作成者は列挙型が大好きで、対応する変数に「enum」という名前を付けるのが好きでした。彼らはそれをパッケージ名にも使用しました。これにより、Java 1.5 (またはそれ以降) でコードを正常にコンパイルできなくなります。

それを自動的に変更することはかなりの問題です。

于 2009-05-13T20:13:33.737 に答える
0

非推奨のメソッドまたはクラスの使用時にコンパイラ エラーをスローするように Eclipse を定義した可能性がありますか?

于 2009-05-13T20:11:45.143 に答える