我正在尝试使用putty运行一些java代码。我在文件夹中有所需的所有jar文件,当在'classname.class'文件夹的文件夹中时,我尝试运行该文件,但是我收到以下错误。
线程“main”中的异常java.lang.UnsupportedClassVersionError:dueDate(不支持的major.minor版本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) 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:192) at java.security.AccessController.doPrivileged(Native Method) 在java.net.URLClassLoader.findClass(URLClassLoader.java:186) 在java.lang.ClassLoader.loadClass(ClassLoader.java:294) at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:290) 在java.lang.ClassLoader.loadClass(ClassLoader.java:250) 在java.lang.ClassLoader.loadClassInternal(ClassLoader.java:310)
我不知道这个错误意味着什么以及我应该如何修复它。我用eclipse来编程和'jdk-6u14'。 任何帮助将不胜感激。
Putty正在使用java版本'1.2.2'
感谢您的回答。 你如何让它使用更新版本的Java?
答案 0 :(得分:3)
嗯,使用Java的PuTTY并不是真的。这是你要连接的服务器。 PuTTY正是您用来连接该服务器的。
您有两种选择:
后者可能更难,但更多更好。你真的不想限制自己使用Java 1.2.2。
答案 1 :(得分:1)
你正试图在一个非常古老的JDK上运行新的java代码 - 1.2.2
Eclipse可能提供一些向后编译选项(检查你的项目 - > preferences - > java编译器),不过我认为它只能回到1.3。
因此,您可能希望尝试使用较新的JDK来实际运行代码。
答案 2 :(得分:1)
该错误表明您正在尝试在不支持它们的JVM上运行类。版本49.0是在Java 5中引入的。该版本之前的JRE不支持它们。
答案 3 :(得分:0)
UnsupportedClassVersion意味着编译的类是使用更高版本的JVM编译的,而不是尝试运行它。最后几个主要版本是java 1.6 == 50.0,java1.5 == 49.0,java1.4 == 48.0。
顺便说一句,您可以设置eclipse来编译该类的早期版本,虽然我不确定您是否可以回溯到1.22- Project:Properties:Compiler:CompilerComplianceLevel。答案 4 :(得分:0)
它基本上意味着您正在尝试运行使用该版本JVM不支持的功能的代码。您的服务器具有比您在日食中使用的更旧的JVM版本。尝试将服务器JVM升级到最新版本。
答案 5 :(得分:0)
我之前尝试使用命令时遇到了相同的问题
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。 然后我希望您的问题能得到解决