将应用程序从Java1.6降级到Java1.5
我有一个用Java编写的小应用程序,它在JRE_1.6上进行了测试和运行。现在我需要在JRE_1.5上运行它。我修改了源代码,使之符合Java1.5的要求,并且项目编译得很好 问题是它使用了许多预编译库,如将应用程序从Java1.6降级到Java1.5,java,java-6,java-5,downgrade,Java,Java 6,Java 5,Downgrade,我有一个用Java编写的小应用程序,它在JRE_1.6上进行了测试和运行。现在我需要在JRE_1.5上运行它。我修改了源代码,使之符合Java1.5的要求,并且项目编译得很好 问题是它使用了许多预编译库,如opencsv-2.3,这些库是用Java 1.6编译的,因此调用它们的任何类都会导致Java.lang.UnsupportedClassVersionError 大多数是com.apachelibs++opencsv-2.3++org.jdom 我如何确定哪些库确实需要更换?如何替换需要它的
opencsv-2.3
,这些库是用Java 1.6编译的,因此调用它们的任何类都会导致Java.lang.UnsupportedClassVersionError
大多数是
com.apache
libs++opencsv-2.3
++org.jdom
我如何确定哪些库确实需要更换?如何替换需要它的库
Upd:如何替换部件实际上代表“如果没有较旧的库,可以做什么?”有没有办法降级已编译的库,或者我需要在1.5上找到类似的解决方案并重写代码?我建议您在每个库的清单中查找以下行:
Bundle-RequiredExecutionEnvironment: J2SE-1.3
X-Compile-Target-JDK: 1.5
Build-Jdk: 1.5.0_22
Created-By: 1.6.0_21-b07 (Sun Microsystems Inc.)
只有在没有其他选项出现的情况下,我才会选择createby
唯一确定的方法是在库中举例说明一个类(假设为同一版本构建的所有类)
版本表如下所示
major minor Java platform version
45 3 1.0
45 3 1.1
46 0 1.2
47 0 1.3
48 0 1.4
49 0 1.5
50 0 1.6
51 0 1.7
52 0 1.8
有关更多详细信息,请参见@Peter Lawrey,例如opencvs:
清单文件(manifest.MF)位于jar中的META-INF文件夹中。我遇到了同样的问题,我刚刚用JDK 1.5在OpenCSV中重建了源文件-问题解决了 您可能需要找到该库的旧版本,如果它们可用的话……嗯,是的,我可能需要。但第一部分是找出哪些库需要更换。“如何替换”部分实际上指的是,如果没有旧版本库,可以做什么。二进制文件是否可以以某种方式重新编译?如果提供了源代码,您可能会尝试重新编译源代码,但这取决于使用哪个版本的java来编写库代码。这使生活变得简单了一些。您可能会发现它的设计非常有用,因为它可以使类向后兼容。我本人从未使用过它,但它的目的是生成与Java1.4兼容的类。
major minor Java platform version
45 3 1.0
45 3 1.1
46 0 1.2
47 0 1.3
48 0 1.4
49 0 1.5
50 0 1.6
51 0 1.7
52 0 1.8