我正在使用Ant来编译Java。该项目必须使用JDK 1.5进行编译,但是部分代码引用了使用JDK 1.6版本编译的软件包。
我将JAVA_HOME设置为1.5,在此引用上抛出了错误
[javac]类文件的版本50.0错误,应为49.0
没有将参考版本降级到1.5的解决方法
您的要求是不可能的。您应该使用JDK 1.5编译您的库。
一旦以某个特定版本编译了Java,就不能在Java的较早版本上使用该版本。
您使用的软件包可能具有适用于Java较早版本的版本,或者您可以获取源代码并使用较旧版本重新编译(如果它不使用任何Java 6库/功能) 。
在NetBeans IDE上,没有问题也可以进行共存。 我需要这个来支持命令行
@Pushparaj同样,在NetBeans IDE上也没有问题,您是否确定NetBeans使用的是JDK 5?
这样想:
您使用的库已使用JDK 6进行了编译。它可能正在使用Java 6中引入的某些功能(这些功能不是Java早期版本的一部分)
当您使用JDK 5进行编译和运行时,遇到此"新"功能时,您希望编译器(和运行时)做什么? JDK 5不知道此功能,将被"混淆"
为了避免在运行时出现这种混乱,编译本身将失败。
您有两种选择:
使用JDK 6编译项目。
获取库的JDK 5编译版本
如果您的项目使用的是JDK 6,并且该库是使用JDK 5编译的,则由于向后兼容,您将不会遇到此问题。
更具体地说,代码仅使用JDK 1.6版本的jar.Java级别设置为1.5时,NetBeans会成功编译项目
@Pushparaj与NetBeans一起使用的编译器与与ant一起使用的编译器-它们是否相同?