如何链接与其他java版本兼容的代码

如何链接与其他java版本兼容的代码,java,jvm,Java,Jvm,我现有的服务器运行在Java 1.6上,我无法升级它 我需要使用一些与Java1.8兼容的第三方jar/api,当我编写一些代码来访问它的api时,eclipse抛出 线程“main”java.lang.UnsupportedClassVersionError:JVMCFRE003主版本错误中出现异常 我现在该怎么办?不确定这是否是重复问题,如果是,请提供相关链接。否,您不能在运行java 1.6的环境中使用在java 1.8下编译的JAR这不可能在同一项目中使用多个java版本,甚至多个JVM

我现有的服务器运行在Java 1.6上,我无法升级它

我需要使用一些与
Java1.8
兼容的第三方jar/api,当我编写一些代码来访问它的api时,eclipse抛出

线程“main”java.lang.UnsupportedClassVersionError:JVMCFRE003主版本错误中出现异常


我现在该怎么办?不确定这是否是重复问题,如果是,请提供相关链接。

否,您不能在运行java 1.6的环境中使用在java 1.8下编译的JAR

这不可能在同一项目中使用多个java版本,甚至多个
JVM


如果您真的需要这个API,那么您只有很少的选择,最好的选择是升级所有项目以使用
Java1.8

,正如其他人所指出的,您不能这样做。但是,您可以找到希望使用的库的旧版本,这些库可能支持您的特定版本的Java。这可能意味着您将在软件中引入bug,但这正是软件随时间发展的方式。

关键是:Java虚拟机不向前兼容

由“n+1”编译器生成的.class文件不能在“n”JVM上使用。(除非您特别指示编译器编译旧版本的java)

您的选择:

  • 看看是否可以获得为Java6编译的库的版本
  • 看看是否可以在Java8JRE上运行应用程序(在较新的JVM上运行java6类没有问题!)

选项1可能会变得非常丑陋——因为该库可能依赖于Java6没有的系统类

如果您必须使用此第三方jar, 然后必须使用-target 1.6编译第三方jar(以java 1.6为目标)。 也许你会得到源代码并自己编译,或者你会让其他人(可能是供应商)编译它

所有其他选择包括:

  • 将JVM升级到Java8
  • 不要使用第三方jar。编写或查找一个与Java6兼容的

  • 你不能。每个项目只能链接一个
    JDK
    。如果您的库不兼容-请更新到1.8,否则请查找其他API