一尘不染

java.lang.UnsupportedClassVersionError:.class文件中的版本号错误?

java

当我包含必须从源代码编译的开源库时,出现此错误。现在,网络上的所有建议都表明该代码是在一个版本中编译并在另一版本(旧版本中是新版本)中执行。但是,我的系统上只有一个JRE版本。如果我运行命令:

$ javac -version
javac 1.5.0_18

$ java -version
java version "1.5.0_18"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_18-b02)
Java HotSpot(TM) Server VM (build 1.5.0_18-b02, mixed mode)

并在Eclipse中检查Java库的属性,我得到 1.5.0_18

因此,我必须得出结论,类本身内部的其他东西引发了异常?那有可能吗?


阅读 349

收藏
2020-03-04

共1个答案

一尘不染

我了解到这样的错误消息通常是正确的。当无法(按您的想法)想到所报告的错误时,您便开始在另一个领域中寻找问题…仅几小时后才发现原始错误消息的确正确。

由于您使用的是Eclipse,因此我认为Thilo正确。得到此消息的最可能原因是因为您的一个项目正在编译1.6类。如果系统上只有1.5 JRE没关系,因为Eclipse有自己的编译器(不是javac),并且只需要1.5 JRE即可编译1.6类。这可能很奇怪,并且需要取消设置才能允许这样做,但我只是设法做到了。

对于有问题的项目,请检查“ Java编译器”部分的“项目属性”(通常是Alt + Enter)。这是配置为编译1.6,但仅带有1.5 JRE的项目的图像。

2020-03-04