5

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

我们即将升级 JRE 版本,您知道我们是否需要为新的 JRE 版本重新编译 JAR 库吗?既然我们没有源码,那么有没有100%准确的反编译器呢?

4

4 回答 4

6

不,所有 JDK 版本都向后兼容较旧的 jar。

您不需要重新编译。

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

于 2013-08-15T13:54:22.033 回答
1

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

您可能会遇到代码中的错误,该错误不会出现在您的版本中,但会出现在从不出现的版本中。例如,您依赖于一些未定义的行为或后来修复的错误。在这种情况下,您将不得不修复您的代码,重新编译它是不够的。

于 2013-08-15T13:55:24.363 回答
0

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

于 2013-08-15T13:54:41.137 回答
0

有一些内部类,如 Sun 的 Base64 编码/解码,将在新版本中慢慢消失。你可以运行 OpenJDK 来检查 sun 包是否有问题。

于 2013-08-15T13:59:38.567 回答