我的现有服务器在Java 1.6上运行,我无法升级它。
我需要使用一些与Java 1.8
兼容的第三方jar / api,当我编写一些代码来访问它的API时,eclipse抛出
Exception in thread "main" java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version
我现在怎么办?不确定这是否是重复的问题,如果是,请提供一些链接。
答案 0 :(得分:2)
重点是:Java虚拟机不向前兼容。
由" n + 1"生成的.class文件编译器无法在" n" JVM。 (除非你专门指示编译器为旧版本的java编译)
您的选择:
选项1可能变得相当丑陋 - 因为该库可能依赖于Java6所没有的系统类。
答案 1 :(得分:1)
在同一个项目中使用多个Java版本甚至多个JVMs
是不可能的
如果你确实需要这个API,那么你只有很少的选择,最好的选择是升级所有项目以使用Java 1.8
答案 2 :(得分:0)
不,你不能在运行java 1.6
的环境中使用java 1.8下编译的jar答案 3 :(得分:0)
正如其他人所指出的那样,你不能这样做。但是,您可能能够找到要使用的旧版本的库,并且这些库可能支持您的特定Java版本。这可能意味着您将在软件中采用错误,但这只是软件随时间的演变。
答案 4 :(得分:0)
如果你必须使用这个第三方罐子, 那么你必须使用-target 1.6(目标java 1.6)编译第三方jar。 也许你会得到源代码并自己编译它,或者你可能会得到其他人(可能是供应商)来编译它。
所有其他选项包括: