我得到启动JNLP当UnsupportedClassVersionError抛出,但是当我尝试运行命令行相关的jar文件,一切工作正常。我尝试设置J2SE版本1.5以上,1.6以上,使用符号/无符号的jar文件,但都没有帮助。

我试图推出自己的jar文件中有两个支持jar文件(mysql的-connector.jar和swingx.jar)。我的jar文件已经在Eclipse编译了1.6符合性设置,并内置有蚂蚁一罐。因为我可以用java 1.6启动命令行的3瓶我有点困惑的是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)

有帮助吗?

解决方案

首先,打开一个CMD窗口或外壳窗口(根据需要与您使用的OS)和输入:

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或者它可以是在另一个目录中。

我知道在Windows下,无论如何,当你运行任何Java Web Start的应用程序,该JNLP装载机从安装最新的Java版本使用。或者,至少它应该做到这一点。我没有Linux操作系统(或者MacOS)下进行实验,看看它是如何工作在那里。但它始终是可能的事情已经得到搞砸了,当你启动一个JNLP您意外运行Java 1.5 JNLP启动。

您可以随时尝试卸载并重新安装最新版本的Java,以确保最新和最伟大的版本是否正确安装。这可以解决的事情。您可能还需要检查你的$ PATH(或%PATH%),以确保正确的Java版本的路径上。 (这并不总是必要的...但如果Java的任何版本的道路上,确保它是你想要的版本。)检查JAVA_HOME环境变量,以确保它指向哪里,你认为它。

其他提示

只是一个猜测,但更新的开始标记到参考规格=“1.6 +”

<jnlp spec="1.6+" codebase="http://www.etc.com/p" href="demo-daily.jnlp">
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top