1

Eclipse からバンドルされた Maven-Ant スクリプトを使用してプロジェクトをビルドし、JBoss デプロイ フォルダーにデプロイしようとしていますが、常に JBoss が次のログを記録することになります。

nested throwable: (java.lang.UnsupportedClassVersionError: Bad version number in .class file)

このプロジェクトで使用したソフトウェアは次のとおりです。

  • アリ 1.6.5
  • Maven-Ant タスク プラグイン 2.1.3
  • JBoss 4.0.5 GA
  • JDK1.4

Window>Preferencesの下のEclipseで、JDKをJava>Installed JREsリストに追加し、念のためデフォルトに設定しました。コンプライアンス レベルを 1.4 に設定し、他のコンプライアンス設定でも試しProject>Properties>Java Compilerてみましたが、成功しませんでした。

また、JBoss は、Oracle Web サイトの 1.4_03 とまったく同じ JDK を使用するように設定されています。奇妙なことに、Eclipse はそれをバージョン 1.5 として識別する傾向があります。たとえば、Java Compiler ページには次のように書かれています。

1.4 準拠を選択する場合は、互換性のある JRE がインストールされ、アクティブ化されていることを確認してください (現在は 1.5)。

どこが間違っていたのか、誰かアドバイスをいただけますか?

前もって感謝します!

4

4 に答える 4

1

これは、JBoss 内の一部のクラスが Javac の互換性のない (より新しい) バージョン (より大きなメジャー番号を持つ) でコンパイルされ、JBoss を実行する JRE がこれをロードすることを拒否したことを意味します。

(問題のあるクラスはスタックトレースのどこかにあります)

唯一の解決策は、最新の JDK を使用して JBoss を実行し、コンパイルすることです (1.4 はかなり古く、AFAIK はサポートされなくなりました)。

于 2011-10-20T13:03:06.780 に答える
1

私はあなたのmaven/ant環境プロパティを調べ始めます。

Eclipse での jdk の選択は、ide でのみ使用されます。Maven プロパティまたは Ant プロパティに設定された java_home およびその他のオプションは、コンパイルとビルドに使用されます。

また、環境から取得されるプロパティ ファイルに明示的に設定されていないかのように、JAVA_HOME 環境変数を確認します。

于 2011-10-20T13:04:02.210 に答える
1

Ant スクリプトも正しいバージョンを使用していることを確認する必要があります。1.5 の警告が表示されるのは少し厄介です。Eclipse が JDK を間違って識別するとは思えません。また、JDK はJRE と同じではないことに注意してください。そのため、パスなどを再確認してください。

また、デプロイされたすべてのライブラリと JBoss のライブラリが 1.4 でコンパイルされていることを確認する必要があります。プロジェクトに依存関係がある場合、それらのライブラリは 1.4 でコンパイルされていない可能性があります。

また、「J2EE JDK 1.4」と言うと少し混乱します。Java EE と Java SE は 2 つの異なるものであり、JDK 1.4 で J2EE 1.4 を実行することはできないからです。

于 2011-10-20T13:10:33.023 に答える
0

私が使用した JDK は、間違ったバージョンであることが判明しました。以前の開発者の 1 人と連絡を取ったところ、JDK 1.5 update 9 で確実に動作するはずであり、それがすべての違いを生んだとのことでした。そのあいまいなエラーメッセージを乗り越えました。混乱してすみません、皆さん!

于 2011-10-26T06:24:08.927 に答える