39

JXL APIを使用してアプリケーションを操作していますが、Eclipse IDEを使用してコンパイルしようとすると正常に動作し、コマンドプロンプトでコンパイルしようとして、以下の例外が表示されても同じようにコンパイルされません。

Extract.java:6: cannot access jxl.read.biff.BiffException bad class file: C:\Program Files\Java\jdk1.5.0_01\jre\lib\ext\jxl.jar(jxl/read/biff/BiffException.class)
class file has wrong version 50.0, should be 49.0
Please remove or make sure it appears in the correct subdirectory of the classpa
th.
import jxl.read.biff.BiffException;
                     ^
1 error

編集:

JDK1.6を使用して実行できます。JDK 1.6は下位バージョンとも互換性がある必要があるため、JDK1.5でコンパイルされたクラスファイルをサポートしないのはなぜですか。

4

5 に答える 5

72

使用しているライブラリは Java 6 でコンパイルされています

コンパイラは Java 5 であるため、その形式を理解できません。

これを修正するには、ライブラリの 1.5 バージョンを入手するか、コンパイラを 1.6 にアップグレードする必要があります。後者をお勧めします。

于 2009-11-19T20:27:55.473 に答える
3

http://www.jnode.org/node/2140あたり...

2007 年 11 月 30 日 (金) - 07:15 に Stephen Crawley によって提出されました。

異なるバージョンの Java でコンパイルされたコードが混在していると思われます。クラス ファイル バージョン 50.0 は Java 6.0 で使用され、49.0 は Java 5.0 で使用されます。

既存のすべてのクラス ファイルを削除するために「ビルド クリーン」を実行してから、通常のビルドを実行してみてください。

JNode は、Java 6.0 のみを使用して開発されています。前回試したときは、Java 5.0 (別名 1.5) を使用してビルドされませんでした。(JNode ブート イメージをビルドするプログラムの問題です。)

Eclipse でビルダーを変更してみてください。3.4 を使用している場合は、Project - Properties - Java Compiler - Enable Project Specific Settings - Compiler Compliance Level = 1.6です。おそらく、JRE 1.6 もインストールする必要があります。

于 2009-11-19T20:28:57.077 に答える
1

これは、そのクラスを Java 6 でコンパイルし、Java 5 で実行しようとしたことを意味します。

解決 :

ant を使用している場合は、プロジェクトのルート ディレクトリで以下の手順を実行します。

  1. アリクリーン
  2. アリ展開

Eclipse を使用している場合は、ワークスペースをクリーンアップ (Java6 でコンパイルされたクラス ファイルを削除) し、再度ビルドします。

于 2013-10-29T02:04:56.530 に答える
1

Eclipseでクラスパスを確認し、コマンドプロンプトでコンパイル先と同じクラスパスであることを確認し、ライブラリのインポートも確認してください

于 2009-11-19T20:26:26.380 に答える
0

これは、IDE で最新バージョンの JDK を指定している可能性がありますが、IDE の外部で (おそらく maven を使用して) プログラムをビルドすると、java_home が IDE のバージョンよりも古いバージョンになります。

于 2013-03-28T12:40:25.453 に答える