启动 jnlp 时抛出 UnsupportedClassVersionError,但是当我尝试从命令行运行相关的 jar 文件时,一切正常。我尝试使用签名/未签名的 jar 文件将 j2se 版本设置为 1.5+、1.6+,但这一切都无济于事。
我正在尝试使用两个支持的 jar 文件(mysql-connector.jar 和 swingx.jar)启动我自己的 jar 文件。我的 jar 文件已在 Eclipse 中使用 1.6 合规性设置进行编译,并使用 ant 构建到 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: java.lang.ClassLoader.defineClass1(Native Method) 的 .class 文件中的错误版本号 java.security.SecureClassLoader.defineClass(SecureClassLoader) 的 java.lang.ClassLoader.defineClass(ClassLoader.java:675) .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(Native Method) 在 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。启动器.run(启动器.java:105) 在 java.lang.Thread.run(Thread.java:613)