我在我的组件中使用一些客户端 jar,客户端 jar 是用 java 7 编译和运行的。由于一些管理决策,我无法迁移到 java 7。我希望客户端 jar 能够工作(编译/运行)在我的 java 6 中我可以通过什么方式实现这一点吗?
谢谢
最佳答案
I want the client jars to work (compile/run) in my java 6 any way i can achieve this?
如果您有源代码,您可以尝试在 Java 6 构建平台上编译代码。但是,不能保证它会按原样编译和运行:
代码可以使用 Java 7 语言结构。
代码可能使用 Java 7 特定的类或方法。
坏消息是没有神奇的方法来处理上述引起的任何编译错误。您需要将 Java 7-isms 手动翻译成 Java 6 兼容的源代码。
但好消息是,如果代码确实在 Java 6 JDK 上编译,那么它很有可能在 Java 6 JRE 上运行。
<小时/>如果您无法访问该源代码,那么问题就会变得非常非常困难
理论上可以将字节码转换为早期版本,但执行此操作的工具往往有很大的局限性。以下是一些可能的线索:
- Retrotranslator将 Java 1.5 字节码转换为(某些)较旧的平台。
- Retroweaver做同样的事情。
请注意,我还没有找到一个将 Java 7 转换为 Java 6 的“复古”工具。(要么没有人完成这项工作,要么 Java 7 的某些问题使问题变得棘手。)
关于java - 在 java 6 中加载/运行在 java 7 中编译的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17653552/