如何为以前的Java版本构建jar?

我正在尝试编译我的代码并在不同的服务器上运行它。 问题是我的JRE版本是Java版本“1.6.0_13”,服务器上的版本是Java版本“1.4.2”。

当我尝试在服务器上运行jar时,这给了我“无法识别的类文件版本”exception。 我无法在服务器上编译我的代码,因为我将不得不设置各种依赖项。

所以我需要知道是否有办法“使用Eclipse”[这比命令行更容易,因为它负责依赖]并使用1.4.2而不是1.6.0_13编译我的东西。 我是否必须从我的机器上卸载我的JRE,然后重新安装以前的版本然后编译或者是否有一种优雅和清洁的方式?

您应该在计算机的1.6端安装1.4.2,并配置该eclipse项目以使用1.4.2 JDK。 其他项目可能配置为使用1.6。

从技术上讲,您可以编译为1.4.2与JDK 1.6的兼容性,但很可能会遇到库问题,因此通常不值得这样做。

您可以使用参数编译java 1.5

javac -source 1.5 -target 1.5 -bootclasspath "C:\Program Files (x86)\Java\jre1.5.0_21\lib\rt.jar" 

不要忘记bootclasspath,否则你会遇到像java 1.5中不存在的String.isEmpty()这样的函数的问题。

Eclipse Mars(4.5.1)


更改JDK合规性

窗口 > 首选项 > Java > 编译器 > JDK合规性>更改编译器合规性级别:

编译器合规性级别

如果要更改其他详细信息,可以取消选中“使用默认合规性设置”。

按“ 确定”,然后在“编译器设置已更改”窗口中选择:

  • 如果要从工作空间构建所有项目,请单击是

    编译器设置已更改

  • 如果您想稍后只构建一个/一些项目,请选择“ 否”

    • 选择项目(单击左侧 – 例如:在Package Explorer中)> Project > Build Project

出口jar子

右键单击项目(从左侧 – 例如:在包资源管理器中)> 导出… >键入“jar”以过滤您拥有的选项>选择您想要的内容(可能是JAR文件Runnable JAR文件 )>下一步>添加详细信息>完成

您可以在Eclipse中配置Source和Target Java版本。

同样在命令行中,您可以使用-source和-target参数编译某个(较旧的)Java版本:

 javac -source 1.4 -target 1.4