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

时间:2010-12-08 23:06:30

标签: java eclipse javac

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

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

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

4 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:7)

您可以使用参数

编译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()等函数的问题。

答案 2 :(得分:6)

<2> Eclipse Mars(4.5.1)

更改JDK合规性

窗口&gt; 偏好设置&gt; Java &gt; 编译器&gt; JDK合规性&gt;更改编译器合规性级别:

Compiler compliance level

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

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

  • 如果您想从工作区构建所有项目:

    Compiler Settings Changed

  • 如果您想稍后只构建一个/某个项目

    • 选择项目(点击左侧 - 例如:在包资源管理器中)&gt; 项目&gt; 构建项目

导出jar

在项目上右键单击(从左侧 - 例如:在包资源管理器中)&gt; 导出... &gt;输入“jar”来过滤你拥有的选项&gt;选择你想要的(可能 JAR文件可运行的JAR文件)&gt;下一个&gt;添加详细信息&gt;完成

答案 3 :(得分:3)

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

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

javac -source 1.4 -target 1.4