我们是否需要编译JAR以进行JDK升级?

时间:2013-08-15 13:52:38

标签: java

对于我们的java项目,我们使用了几个JAR库。 JAR库的一些源代码已丢失。

我们很快就会升级JRE版本,你知道我们是否需要为新的JRE版本重新编译JAR库吗?由于我们没有源代码,是否有100%准确的反编译器?

4 个答案:

答案 0 :(得分:6)

不,所有JDK版本都与旧版罐子向后兼容。

您无需重新编译。

唯一的例外是JAR实现(不使用,但实现)JDBC驱动程序。

答案 1 :(得分:1)

您无需在Java 8 JVM上重新编译Java 1.0 JAR。

您可能遇到的是您的代码中的错误,该错误未显示在您的版本中,但确实显示在永不版本中。例如你依赖于一些未定义的行为或后来修复的bug。在这种情况下,您必须修复代码,重新编译它是不够的。

答案 2 :(得分:0)

Java是向后兼容的,因此您可以使用使用最新jre版本运行的旧jdk编译的jar。但是如果你使用的是一些特定的类,这些类在最新版本中有所改变,那么只有你可能会遇到问题。我相信这种可能性非常小。

答案 3 :(得分:0)

有一些内部类,如Sun的Base64编码/解码,在新版本中会逐渐消失。您可以针对OpenJDK运行以检查sun包是否存在问题。