2011-06-23 32 views
2

JavaをコンパイルするためにAntを使用しています。プロジェクトはJDK 1.5を使用してコンパイルする必要がありますが、コードの一部はJDK 1.6バージョンでコンパイルされたパッケージを参照します。 私は、JDKコンパイラのバージョンの問題

[javacの]クラスファイルが間違ったバージョン50.0を持っているように、エラーがこのリファレンスでスローされ、1.5にJAVA_HOMEを設定1.5

への参照のバージョンをダウングレードせずに抜け出す方法は何ですか49.0

する必要があります

答えて

0

は、この方法を考える:

使用するライブラリは、JDK 6を使用してコンパイルされたそれは、Java 6で導入されたいくつかの機能を使用している可能性があり(Javaの以前のバージョンの一部ではなかったこと)

ときコンパイルと実行にJDK 5を使用すると、この「新しい」機能に遭遇したときにコンパイラ(およびランタイム)が何をすると思いますか? JDK 5はこの機能を認識せず、「混乱します」

実行時にこの混乱を避けるために、コンパイル自体は失敗します。

  • すると、あなたのプロジェクトがJDK 6とライブラリを使用していた場合、あなたのライブラリー

のJDK 5コンパイルされたバージョンを取得します

  • JDK 6を使用してプロジェクトをコンパイルします。

    は、2つのオプションがありますJDK 5でコンパイルされた場合、下位互換性のためにこの問題に直面することはありませんでした。

  • +0

    より具体的には、コードでは、JDK 1.6バージョンのjarを使用しています.NetBeansは、Javaレベルが1.5に設定されているときにプロジェクトを正常にコンパイルします。 – Pushparaj

    +0

    @Pushparaj NetBeansで使用しているコンパイラと、彼らは同じですか? – Nivas

    4

    あなたが求めていることはできません。ライブラリをJDK 1.5でコンパイルする必要があります。

    1

    Javaが特定のバージョンでコンパイルされると、そのバージョンを古いバージョンのJavaで使用することはできません。

    使用しているパッケージのバージョンが古いバージョンのJavaに適している可能性があります。代わりに、ソースコードを入手して古いバージョンで再コンパイルすることもできます(Java 6ライブラリ/機能)。

    +0

    NetBeans IDEでは問題なく、同じことが行われています。私はコマンドラインをサポートするためにこれを必要としています – Pushparaj

    +0

    @Pushparaj _ NetBeans IDE_で問題なくcoimpilingされていますNetBeansがJDK 5を使用していますか? – Nivas