Frage

Ich erhalte eine UnsupportedClassVersionError geworfen, wenn jnlp starten, aber wenn ich versuche, die entsprechenden JAR-Dateien von der Kommandozeile funktioniert alles einwandfrei laufen. Ich habe versucht Einstellung j2se Versionen 1.5+, 1.6+, unter Verwendung mit / ohne Vorzeichen JAR-Dateien, aber alles, was hilft nicht.

Ich versuche, meine eigene JAR-Datei mit zwei Stütz JAR-Dateien (mysql-connector.jar und swingx.jar) zu starten. Meine JAR-Datei wurde mit 1.6 Compliance-Einstellungen in Eclipse und gebaut in ein Gefäß mit Ameise zusammengestellt. Da ich die drei Gläser von der Kommandozeile java starten können 1.6 Ich bin ein wenig verwirrt, dass jnlp ausfällt. Jede Hilfe ist willkommen.

Hier ist die jnlp-Datei:

<?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>

Der Fehler ich erhalte, ist:

java.lang.UnsupportedClassVersionError: Bad Versionsnummer in .class-Datei bei java.lang.ClassLoader.defineClass1 (native Methode) bei java.lang.ClassLoader.defineClass (ClassLoader.java:675) bei java.security.SecureClassLoader.defineClass (SecureClassLoader.java:124) bei java.net.URLClassLoader.defineClass (URLClassLoader.java:260) bei java.net.URLClassLoader.access $ 100 (URLClassLoader.java:56) bei java.net.URLClassLoader $ 1.run (URLClassLoader.java:195) bei java.security.AccessController.doPrivileged (native Methode) bei java.net.URLClassLoader.findClass (URLClassLoader.java:188) bei com.sun.jnlp.JNLPClassLoader.findClass (JNLPClassLoader.java:256) bei java.lang.ClassLoader.loadClass (ClassLoader.java:316) bei java.lang.ClassLoader.loadClass (ClassLoader.java:251) bei com.sun.javaws.Launcher.doLaunchApp (Launcher.java:1052) bei com.sun.javaws.Launcher.run (Launcher.java:105) bei java.lang.Thread.run (Thread.java:613)

War es hilfreich?

Lösung

Öffnen Sie zunächst ein CMD-Fenster oder ein Shell-Fenster (je nach Betriebssystem Sie verwenden) und geben Sie diese:

java -version

, um sicherzustellen, dass die Version verwenden Sie die Version, die Sie laufen erwarten ist. Dann wieder von der Kommandozeile den Befehl:

javaws http://host/path/to/your.jnlp

Wenn Sie nicht javaws von der Kommandozeile ausgeführt werden können, dann werden Sie haben, um herauszufinden, wo es installiert ist und verwenden Sie den vollständigen Pfad der ausführbaren Datei. Unter Windows wird dies so etwas wie

sein
C:\Program Files\Java\jre1.6.0_14\bin\javaws.exe

und unter Linux kann es /usr/bin/javaws werden oder es kann in einem anderen Verzeichnis sein.

Ich weiß, unter Windows, auf jeden Fall, wenn Sie eine beliebige Java Web Start Anwendung ausführen, wird der JNLP-Loader aus der letzten Java-Version installiert verwendet. Oder zumindest es sollte dies tun. Ich habe nicht unter Linux (oder MacOS) experimentiert, um zu sehen, wie es dort funktioniert. Aber es ist immer möglich, dass etwas bekommen hat vermasselt und wenn Sie eine JNLP starten werden Sie versehentlich eine Java 1.5 JNLP Launcher ausgeführt wird.

Sie können immer versuchen, zu deinstallieren und neu installieren Sie die aktuellste Version von Java, um sicherzustellen, dass die neueste und beste Version korrekt installiert ist. Dies kann Dinge reparieren. Sie können auch Ihre $ PATH überprüfen (oder% PATH%) wollen, um sicherzustellen, dass die richtige Version von Java auf dem Weg ist. (Dies ist nicht immer notwendig, ... aber, wenn eine Version von Java auf dem Weg ist, sicherzustellen, dass es die Version moechten.) Überprüfen Sie die Umgebungsvariable JAVA_HOME um sicherzustellen, dass es Punkte, an denen Sie denken, es tut.

Andere Tipps

Nur eine Vermutung, aber aktualisieren das Starttag zu Referenz spec = "1.6 +"

<jnlp spec="1.6+" codebase="http://www.etc.com/p" href="demo-daily.jnlp">
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top