[英]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 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.