1

我的问题的动机很简单:不幸的是,Oracle 停止了 Java 6 的开发,并且不会提供任何额外的构建。如果 Oracle 会发现任何安全问题,他们只会在 Java 7 中修复它。我们有使用 Java 6 开发的大项目,我没有资源将其转换为 Java 7。

所以,我想在 JDK 6 (6u45) 的最后一个版本中编译代码,并在 JDK 7 的最新版本中运行它。

在这种情况下,我的字节码是否会对 JDK 7 中修复的漏洞开放?

添加

Oracle Java SE 重要补丁更新示例: http ://www.oracle.com/technetwork/topics/security/javacpuapr2013-1928497.html

不幸的是,下一个安全补丁将不会应用于 JDK 6。

所以,更新后的问题是:我应该使用最新的 JRE 7 运行我的代码而不重新编译我的 Java 6 字节代码吗?或者我应该使用最新的 JDK 重新编译我的代码并使用最新的 JRE 运行它?

4

1 回答 1

4

如果漏洞在虚拟机或 API 中,如果使用 Java 7 运行,则不会对漏洞开放。如果在编译器中,则可以通过使用 Java 7 编译来修复漏洞。

于 2013-08-21T17:55:59.193 回答