在java 6中用java 7编译的加载/运行类

时间:2013-07-15 11:47:47

标签: java class jvm

我在我的组件中使用了一些客户端jar,客户端jar被编译并使用java 7运行。由于一些管理决策,我无法移动到java 7.我希望客户端jar工作(编译/运行)在我的java 6中我能以任何方式实现这个目标吗?

由于

1 个答案:

答案 0 :(得分: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的问题会使问题变得棘手。)