私はWindowsで.jarファイルを生成しました。
私はその.jarファイルをUNIXで実行する必要があります。UNIX上で.jarファイルを実行するには?
私は(java -jar myJar.jar
)そのコマンドを実行していますが、私がUNIXでJavaバージョン1.5.0.12を使用しています
java.lang.UnsupportedVersionError
を与えています。
私はWindowsで.jarファイルを生成しました。
私はその.jarファイルをUNIXで実行する必要があります。UNIX上で.jarファイルを実行するには?
私は(java -jar myJar.jar
)そのコマンドを実行していますが、私がUNIXでJavaバージョン1.5.0.12を使用しています
java.lang.UnsupportedVersionError
を与えています。
java.lang.UnsupportedVersionError
ローカルjava1.5で、JDK6でコンパイルさjarファイルを起動しようとしなければなりません。
は、次のいずれかが可能です。
javac -source 1.5 -target 1.5 -bootclasspath /path/to/jre1.5/lib/rt.jar
はあなたかどうかを確認するために:
を使用してクラスを再コンパイルするには、UNIX上のあなたのJVMをアップグレード
Windowsと同じです。
java -jar file.jar
あなたがかもしれない次のいずれか、
は(-target 1.5
フラグでjarファイルを再コンパイルのUnix
にJDK 1.6をインストールしていますが、APIの非互換性に起因するエラーの任意の並べ替えを得ることができますので、最初の方法ははるかに良い)
あなたは '-sourceと-bootclasspath'のパラメータを忘れています(私の答えは以下を参照してください) – VonC
あなたのUnixシステムで新しいバージョンのJavaを使ってみましたか?
jarファイルを制御すると、コンパイル時にJava 1.5をターゲットにできますか?
UnsupportedVersionError
は、Javaソースコードを実行しようとしているものよりも新しいバージョンのJavaでコンパイルしたことを意味します。 Javaは下位互換性があります(新しいバージョンのJavaでは古いバージョンでコンパイルされたJavaプログラムを実行できます)が、上位互換性はありません(古いバージョンのJavaでは新しいバージョンでコンパイルされたJavaプログラムを実行できません)。
あなたはUnix上でJava 5を使用していると言います。 WindowsでJava 6を使用してコンパイルしましたか?それから明らかにうまくいかないでしょう。
考えられる解決策:
-source 1.5 -target 1.5
コンパイルしながら、(これは、Java 6を使用しないように、あなたを保護しませんUnixの' -bootclasspath'を忘れました。 – VonC
R上のJava 6の唯一の標準ライブラリのクラスなので、これはあなたのプログラムは、Java 5でエラーなしで実行されます満杯保証するものではありません)
(Java 6のは、新しい機能を使用するには、デフォルトではJava 6の互換性のあるバイトコードを生成します。あなたのための最も簡単にJava 5 JDKをインストールし、アプリケーションを再コンパイルするためにそれを使用することです)
私は同じ問題に直面しました。これは、ランタイムとコンパイル時のJDKのバージョンが異なるためです。 Javaコンパイラのバージョンを変更した後、Eclipseを使ってjarファイルを作成します。次のリンクは私を助けました。
その後、質問を変えてくれてありがとう。 – Bombe