繁体   English   中英

UnsupportedClassVersionError

[英]UnsupportedClassVersionError

我正在尝试使用PuTTY运行一些Java代码。 我将所有需要的jar文件放在一个文件夹中,并且在带有'classname.class'文件夹的文件夹中时,我尝试运行该文件,但出现以下错误。

Exception in thread "main" java.lang.UnsupportedClassVersionError: dueDate (Unsupported major.minor version 49.0)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:489)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:104)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:245)
        at java.net.URLClassLoader.access$1(URLClassLoader.java:211)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:192)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:294)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:290)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:310)

我不知道此错误的含义以及如何解决该错误。 我使用Eclipse对它和jdk-6u14

PuTTY使用Java版本1.2.2

您如何才能使其使用Java的较新版本?

好吧,使用Java并不是PuTTY。 这是您要连接的服务器。 PuTTY就是您用来连接该服务器的工具。

您有两种选择:

  • 将Java的目标版本(Windows / Preferences / Java / Compiler / Compiler Compliance Level)更改为1.3 ...理想情况下,您也应该针对1.2.2 JDK进行编译,以避免使用任何不存在的类在服务器上。
  • 在服务器上获取Java的最新版本。

后者可能会更难,但更好。 您真的不想只限于Java 1.2.2。

您正在尝试在非常老的JDK-1.2.2上运行新的Java代码。

Eclipse可能提供了一些向后编译选项(检查项目->首选项-> Java编译器),尽管我认为它只能回到1.3。

因此,您可能想尝试使用更新的JDK实际运行代码。

该错误表明您正在尝试在不支持它们的JVM上运行类。 Java 5中引入了类版本49.0。该版本之前的JRE将不支持它们。

UnsupportedClassVersion表示已编译的类是使用比您尝试运行的JVM更高的版本编译的。 最后几个主要版本是java 1.6 == 50.0,java1.5 == 49.0,java1.4 == 48.0。

顺便说一句,您可以设置eclipse来编译该类的早期版本,尽管我不确定您可以回到1.22- Project:Properties:Compiler:CompilerComplianceLevel。

基本上,这意味着您正在尝试运行使用该版本JVM不支持的功能的代码。 您的服务器的JVM版本比您在Eclipse中使用的版本更早。 尝试将服务器JVM升级到最新版本。

尝试使用命令时,我遇到了同样的问题

java -jar <jarfilename> --http <portname> --id <id name>

运行并演示DHT独立项目。 问题在于EC2实例设置,它位于JAVA版本中。 因此,您所需要做的就是更新版本。 我不敢相信两次关闭更新之间可能会有这样的差异,但是该命令在JAVA1.7中不起作用,因此我将其更新为JAVA 1.8。 运行这些命令以执行以下删除和安装新版本的操作

sudo yum install java-1.8.0

接着

sudo yum remove java-1.7.0-openjdk

请记住,首先安装版本1.8,然后删除1.7。 然后我希望您的问题能得到解决

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM