2017-08-24 33 views
2

我现有的服务器上的Java 1.6上运行,我不能升级。如何链接代码,并与其他Java版本兼容

我需要的时候我写一些代码来访问其API使用一些第三方JAR/API,它是与Java 1.8兼容,日食抛出

Exception in thread "main" java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version

我怎么能现在开始?不知道这是否是重复问题,如果是,请提供一些链接。

+0

你不能兼容。每个项目只能连接一个“JDK”。如果你的库不兼容 - 更新到1.8,否则找到其他的API –

回答

2

的一点是:Java虚拟机向前兼容。

一个.class这是由“N + 1”的编译器生成的文件不能在“n”个JVM使用。 (除非您特别指示编译器来编译旧版本的Java)

您的选择:

  • 看你是否能获得编译为Java 6
  • 一个版本库看是否可以运行你上的Java JRE 8应用程序(有一个较新的JVM运行的Java6班没问题!)

选项1可以得到相当丑陋 - 作为库可能对系统类的依赖关系Java6没有。

0

不,你不能使用的环境下的Java 1.8编译罐子在Java 1.6的

1

运行,这是不可能使用倍数的Java版本,甚至数倍JVMs在同一个项目

如果您真的需要这个API,那么你只有几个选择,最好的是升级所有的项目使用Java 1.8

0

正如别人指出,你不能这样做。但是,您可能能够找到您希望使用的较旧版本的库,并且这些库可能支持您的特定版本的Java。这可能意味着您将在您的软件中采用错误,但这就是软件随着时间推移而发展的方式。

0

如果您必须使用此第三方jar ,那么您必须使用-target 1.6(目标java 1.6)编译第三方jar。 也许你会得到源和自行编译或也许你会得到别人(供应商,也许)进行编译。

所有其他选项都是:

  1. 升级您的JVM为Java 8
  2. 不要使用第三方罐子。的写或找到一个与Java 6
相关问题