对于我们的java项目,我们使用了几个JAR库。 JAR库的一些源代码已丢失。
我们很快就会升级JRE版本,你知道我们是否需要为新的JRE版本重新编译JAR库吗?由于我们没有源代码,是否有100%准确的反编译器?
答案 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包是否存在问题。