1

我在我的组件中使用了一些客户端 jar,客户端 jar 是使用 java 7 编译和运行的。由于一些管理决策,我无法迁移到 java 7。我希望客户端 jar 在我的 java 中工作(编译/运行) 6 有什么办法可以做到这一点?

谢谢

4

1 回答 1

2

我希望客户端 jar 在我的 java 6 中工作(编译/运行),我能以任何方式实现这一点吗?

如果您有源代码,可以尝试在 Java 6 构建平台上编译代码。但是,不能保证它会按原样编译和运行:

  • 代码可能使用 Java 7 语言结构。

  • 代码可能使用 Java 7 特定的类或方法。

坏消息是没有神奇的方法来处理由上述引起的任何编译错误。您需要将 Java 7-isms 手动翻译成 Java 6 兼容的源代码。

但好消息是,如果代码确实在 Java 6 JDK 上编译,那么它很有可能在 Java 6 JRE 上运行。


如果您无权访问该源代码,那么问题会非常非常困难

理论上可以将字节码转换为早期版本,但执行此操作的工具往往有很大的局限性。以下是一些可能的线索:

请注意,我还没有找到将 Java 7 转换为 Java 6 的“复古”工具。(要么没有人完成这项工作,要么 Java 7 的某些东西使问题变得棘手。)

于 2013-07-15T12:01:51.713 回答