当我包含必须从源代码编译的开源库时,出现此错误。现在,网络上的所有建议都表明该代码是在一个版本中编译并在另一版本(旧版本中是新版本)中执行。但是,我的系统上只有一个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
1.5.0_18
因此,我必须得出结论,类本身内部的其他东西引发了异常?那有可能吗?
我了解到这样的错误消息通常是正确的。当无法(按您的想法)想到所报告的错误时,您便开始在另一个领域中寻找问题…仅几小时后才发现原始错误消息的确正确。
由于您使用的是Eclipse,因此我认为Thilo正确。得到此消息的最可能原因是因为您的一个项目正在编译1.6类。如果系统上只有1.5 JRE没关系,因为Eclipse有自己的编译器(不是javac),并且只需要1.5 JRE即可编译1.6类。这可能很奇怪,并且需要取消设置才能允许这样做,但我只是设法做到了。
对于有问题的项目,请检查“ Java编译器”部分的“项目属性”(通常是Alt + Enter)。这是配置为编译1.6,但仅带有1.5 JRE的项目的图像。