旧JVM上的新代码

时间:2013-08-12 10:13:03

标签: java jvm

我的类与Java 1.5及更高版本相对应。它是用Java 1.7编译的。
现在证明我必须在Java 1.3上启动它。
如何解决这个问题?

4 个答案:

答案 0 :(得分:0)

如果您有源文件我只想尝试在您需要的版本中编译它。如果这不起作用,你需要“摆脱”不支持的东西(例如泛型)

如果您没有源文件,我会尝试反编译并在您需要的版本中编译它。

Stackoverflow Answer on decompiling

答案 1 :(得分:0)

您在1.5中编码,并在Java 1.7(Java 7)中编译。如果你想将这个运行到Java 1.3中,那么你需要确定你在代码中使用的API。它应该在Java 1.3中支持的代码中使用的API。

实施例: -

让我们举个例子。如果您在代码中使用泛型。但是我们知道java 1.3不支持泛型。所以这段代码不适用于Java 1.3。你需要删除并寻找替代方案。

答案 2 :(得分:0)

有几件事需要考虑:

  • 类格式(即使使用1.7编译器,也可以将目标类格式设置为1.3)
  • API更改
  • 不得使用泛型

答案 3 :(得分:0)

好的,我解决了这个问题(相当原始):

我使用javac编译它,然后我在十六进制编辑器中打开它,在2F上更改了八个字节,保存并且它有效!