0

この正確なエラーに関連する他の質問を見たことがありますが、それらはまったく役に立たないようです。

私は、Java 1.5バージョンのLinuxシステム(間違っていない場合はCentOS)で実行するようにアプリをコーディングしています。現在、Java1.6を搭載したMacOSXシステムのEclipseIDEでプログラムを編集しています。

プロジェクトを実行可能な.JARファイルにコンパイルしました。Eclipseのライブラリをどうするかというオプションが表示されたら、「選択したパッケージを.JARファイルに抽出する」を選択します。

Eclipseには独自のコンパイラがあることを知っているので、プロジェクト設定でターゲットコンパイラをJava 1.5に変更し、再構築しました。次に、実行可能なjarファイルを再パッケージ化しました。

ただし、ターゲットマシンで「java-jarfile.jar」を指定して.JARファイルを実行すると、前述の「不正なバージョン番号」エラーが発生します。

誰かが助けることができますか?

完全なエラーは次のとおりです。

at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

私は1つの外部ライブラリsun-javamailのみを使用しています。

ありがとうございました

4

2 に答える 2

0

あなたのどちらか:

  • -target1.5ですべてを再コンパイルしていません
  • すべてを再デプロイしていません
  • 1.6用にコンパイルされたサードパーティのJARを使用しています。例外で指定されたクラスはそれを教えてくれます。
于 2012-12-14T23:04:36.280 に答える
0

クラスファイルに対してjavapコマンドを実行し、それが準拠しているJDKの正確なバージョンを確認することをお勧めします。

例えば:

C:\>javap -verbose Main
Compiled from "Main.java"
public class Main extends java.lang.Object
  SourceFile: "Main.java"
  minor version: 0
  major version: 50
... 

以下は、メジャーバージョンとjdkの間のマッピングです。

MajorVersion     JDK
51      J2SE 7
50      J2SE 6.0
49      J2SE 5.0

参照:クラスファイル形式

于 2012-12-14T23:19:04.487 に答える