如何将Java 1.5类与Java 1.6类链接?

时间:2012-06-15 18:40:56

标签: java java-6 java-5

使用Java 1.5编译器,当我尝试编译依赖于使用Java 1.6编译的类的java类时,我收到此错误:

in/javac Java15.java
Java15.java:5: cannot access Java16
bad class file: ./Java16.class
class file has wrong version 50.0, should be 49.0
Please remove or make sure it appears in the correct subdirectory of the classpath.
        String java16result = Java16.test();
                              ^
1 error

反向工作(使用Java 1.6编译器,我可以链接Java 1.5类。)

是否有任何解决方法?

4 个答案:

答案 0 :(得分:4)

“解决方法”根本就是不这样做 - 如果你想用Java 1.5编译一些东西,也要用Java 1.5编译它的所有依赖项。

答案 1 :(得分:3)

我不认为你想做的事情是可能的。 Java 1.6具有Java 1.5不了解的功能,因此不知道如何执行它们。

答案 2 :(得分:0)

使用java 1.6编译器和运行时。

您也可以反编译1.6代码并使用1.5编译器重新编译它。

我相信1.5和1.6类文件之间只有一个小的区别。您可以将.cl​​ass文件开头的魔术字节更改为1.5并使其工作。虽然我不能保证,但我不会这样做。

答案 3 :(得分:0)

对我有用的解决方案是使用java.lang.Runtime.exec从Java 1.5程序执行Java 1.6程序。

我意识到这可能不是大多数情况下的最佳解决方案,但在我的情况下(我需要使用Java 1.5从Oracle数据库调用Java 1.6程序),它工作正常,并且不需要任何更改到我目前的数据库安装。