0

我正在尝试使用 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?

4

6 回答 6

3

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

你有两个选择:

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

后者可能更难但更好。您真的不想将自己限制在 Java 1.2.2 中。

于 2009-07-29T13:57:53.347 回答
1

您正在尝试在一个非常旧的 JDK - 1.2.2 上运行新的 java 代码

Eclipse 可能会提供一些向后编译选项(检查您的项目 -> 首选项 -> java 编译器),但我认为它只能追溯到 1.3。

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

于 2009-07-29T13:57:35.657 回答
1

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

于 2009-07-29T13:58:44.627 回答
0

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

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

于 2009-07-29T14:01:45.637 回答
0

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

于 2009-07-29T14:01:55.853 回答
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。然后我希望你的问题能得到解决

于 2018-10-28T15:17:36.900 回答