当前位置: 首页 > 知识库问答 >
问题:

不支持ClassVersionError。。。但使用相同的JAVA版本

沃威
2023-03-14

我正在尝试迁移tomcat服务器。

两者都使用tomcat7版本,并且都应该准备好将我的java/jsp文件从一台服务器带到另一台服务器。我做到了,并且我得到了Unsupport tedClassVersionError错误。这很正常,因为在旧的版本中我有JRE 1.8版本,在新安装中我有JRE 1.7版本(均来自Oracle)。

我继续将第二个升级到1.8。一切都很好,因为在新版本中,java版本的输出是:

java版本“1.8.0\u 191”java(TM)SE运行时环境(build 1.8.0\u 191-b12)java HotSpot(TM)64位服务器VM(build 25.191-b12,混合模式)

而在旧的:

Java版本"1.8.0_131"Java(TM)SE运行时环境(build 1.8.0_131-b11)JavaHotSpot(TM)64位服务器VM(build 25.131-b11,混合模式)

在两个echo$JAVA\u主页输出中:

/usr/lib/jvm/java-8-oracle

我重新启动了tomcat和服务器本身。。。但不受支持的ClassVersionError仍然存在。

我不知道是否:

  • 我仍然指向JRE 1.7安装
  • 或被认为是1.8.0\u 191的另一个版本,而不是1.8.0\u 131

注意:编译器与未重新编译的编译器相同。只需将已编译的文件从旧服务器(没有问题的版本)转移到新服务器即可。

有人给我一个提示吗?

非常感谢你

共有1个答案

司徒兴思
2023-03-14

正如评论所指出的,有时JAVA_HOME没有被检查,关于应该使用什么jvm的决定是根据另一个标准做出的(不能说是哪个标准)。因此删除旧版本的java迫使进程选择所需的版本,因为它是唯一的。

 类似资料:
  • 我需要在php上运行一些java代码,所以我找到了这个 所以我下载了tomcat并放置了JavaBridge。我在webapps目录中找到了war,并让这些例子发挥了作用(我花了一段时间才弄明白这一点) 我甚至可以加载内置的java东西,并用我自己的PHP代码运行示例JAR。 我做不到的是制作自己的jar并运行它。我尝试了各种不同的编译器(Eclipse、Netbeans、命令行),但都没有用。

  • 我试图制作我的第一个应用程序(hello world),并在手机上运行它,但当我单击run时,gradle返回了这个错误(我在这里研究了stackoverflow并试图关闭即时运行,但在我的情况下似乎不起作用): 后来编辑2:我想通了,我的电脑上安装了一个旧的jdk版本和最新的android studio,谢谢你的帮助。我只需要安装最新的jdk版本(8)

  • 当我运行HelloWorld时,它会返回: “java.lang.UnsupportedClassVersionError:HelloWorld已由java运行时的最新版本(类文件版本52.65535)编译,此版本的java运行时仅识别52.0以下的类文件版本。” 我该如何解决这个问题?

  • 在生成APK时,我得到了一个错误:项目使用的是一个不受支持的Gradle版本。我正在使用Android Studio3.5版本。 我试图更改build gradle类路径以匹配gradle-wrapper.properties中的distributionUrl,但是错误仍然存在。 首先,在项目级设置中,选择Use default gadle wrapper。 build.gradle文件:

  • 问题内容: Hello Hello.html Error 可能是什么问题? 问题答案: 问题是由于Java版本不匹配。参考类参考: Java SE 12 = 56(十六进制0x38) Java SE 11 = 55(十六进制0x37) Java SE 10 = 54 Java SE 9 = 53 Java SE 8 = 52 Java SE 7 = 51 Java SE 6.0 = 50 Java