なぜ私はJNLP中でUnsupportedClassVersionErrorを得るのですか?
-
06-09-2019 - |
質問
私は、コマンドラインから関連するjarファイルを実行しようとすると、しかし、すべてが正常に動作します、でUnsupportedClassVersionErrorがスローを得ます。私は署名/署名のないjarファイルを使用して、1.6以上、1.5以上するJ2SEのバージョンを設定しようとしたが、助けにはならないことすべて。
私は2つのサポートjarファイル(mysqlの-のconnector.jarとswingx.jar)で自分のjarファイルを起動しようとしています。私のjarファイルは、Eclipse 1.6準拠の設定でコンパイルされ、アリとのjarファイルに組み込まれています。私は、Java 1.6を使用してコマンドラインから3つのjarファイルを起動することができますので、私は少しJNLPが失敗したことに困惑です。すべてのヘルプは高く評価されます。
ここでJNLPファイルがあります
<?xml version="1.0" encoding="utf-8"?>
<!-- JNLP File -->
<jnlp spec="1.5+" codebase="http://www.etc.com/p" href="demo-daily.jnlp">
<information>
<title>demo: daily stock charting utility</title>
<offline-allowed/>
</information>
<security>
</security>
<resources>
<j2se href="http://java.sun.com/products/autodl/j2se" version="1.6+" />
<jar href="demo-daily.jar" main="true" />
<jar href="swingx.jar" main="false" />
<jar href="mysql-connector.jar" main="false" />
</resources>
<application-desc main-class="quipu.viewers.charts.stockcharts.daily"/>
</jnlp>
私が手にエラーがあります:
java.lang.UnsupportedClassVersionError:の.classファイルに不正なバージョン番号 java.lang.ClassLoader.defineClass1で(ネイティブメソッド) java.lang.ClassLoader.defineClassで(ClassLoader.java:675) java.security.SecureClassLoader.defineClassで(SecureClassLoader.java:124) java.net.URLClassLoader.defineClassで(URLClassLoader.java:260) java.net.URLClassLoader.access $ 100(URLClassLoader.java:56)で java.net.URLClassLoader $ 1.run(URLClassLoader.java:195)で java.security.AccessController.doPrivilegedで(ネイティブメソッド) java.net.URLClassLoader.findClassで(URLClassLoader.java:188) com.sun.jnlp.JNLPClassLoader.findClassで(JNLPClassLoader.java:256) java.lang.ClassLoader.loadClassで(ClassLoader.java:316) java.lang.ClassLoader.loadClassで(ClassLoader.java:251) com.sun.javaws.Launcher.doLaunchAppで(Launcher.java:1052) com.sun.javaws.Launcher.runで(Launcher.java:105) java.lang.Thread.run(Thread.java:613)で
解決
まず、(あなたが使用しているOSに応じて)CMDウィンドウまたはシェル・ウィンドウを開き、次のように入力します:
java -version
あなたが実行しているバージョンは、あなたが実行していることを期待していたバージョンであることを確認します。その後、再度、コマンドラインから、コマンドを発行します:
javaws http://host/path/to/your.jnlp
コマンドラインからjavaws
を実行できない場合は、、その後、あなたはそれがインストールされています場所を見つけると、実行可能ファイルへのフルパスを使用する必要があります。 Windowsでは、これは次のようになります。
C:\Program Files\Java\jre1.6.0_14\bin\javaws.exe
とLinuxの下で、それは/usr/bin/javaws
することができるか、それは別のディレクトリにあってもよい。
私はあなたが任意のJava Web Startのアプリケーションを実行すると、JNLPローダーがインストールされ、最新バージョンのJavaから使用され、任意の割合で、Windows上で知っています。あるいは、少なくとも、これを行うことになっています。私はそれがどのように動作するかを見るためのLinux(やMacOS)の下で実験していません。しかし、それは何かが台無し得ていることを常に可能だとあなたはJNLPを起動したときに、誤ったJava 1.5 JNLPランチャーを実行しています。
あなたは常に最新かつ最高のバージョンが正しくインストールされていることを確認するために、Javaの最新バージョンをアンインストールし、再インストールしようとすることができます。これは、物事を固定してもよいです。また、Javaの正しいバージョンがパス上にあることを確認するためにあなたの$ PATH(または%PATH%)をチェックすることもできます。 (これは必ずしも必要ではない...が、Javaのいずれかのバージョンがパス上にある場合、それはあなたが望むバージョンだことを確認してください。)あなたはそれがないと思うところそれが指すことを確認するために、環境変数JAVA_HOMEを確認します。
他のヒント
ちょうど推測が、参照スペック=「1.6 +」
に開始タグを更新します<jnlp spec="1.6+" codebase="http://www.etc.com/p" href="demo-daily.jnlp">