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

10

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

这导致我在尝试在服务器上运行jar文件时出现“未识别的类文件版本”异常。由于我将不得不设置各种依赖关系,因此无法在服务器上编译我的代码。

因此,我需要知道是否有一种“使用Eclipse”的方式[这比命令行更容易,因为它会处理依赖关系],并使用1.4.2代替1.6.0_13编译我的内容。我必须从我的计算机卸载JRE,然后重新安装先前的版本,然后再进行编译,还是有更简单和更干净的方法?


1
我建议您将Java 6更新13升级到Java 6更新23,因为旧版本相当陈旧,并且已经修复了许多错误。对于Java 1.4.2来说更是如此。 - Peter Lawrey
4个回答

10

您应该在计算机上同时安装1.4.2和1.6版本,并将Eclipse项目配置为使用1.4.2 JDK。其他项目可以配置为使用1.6版本。

技术上,您可以使用JDK 1.6编译兼容于1.4.2的代码,但很可能会遇到库问题,因此通常不值得这样做。


嘿,谢谢。我下载了j2sdk-1_4_2_19-linux-i586.bin。你能告诉我如何配置eclipse来使用它来编译我的包吗?在eclipse中,我在buildpath下有j2sdk1.4.bin和jdk1.6.0 [如果我将其删除..我会得到一堆编译错误]...而在eclipse buildpath=>orderandexport中,我已经选中了j2sdk并取消了jdk1.6.0........我尝试过这个,但我认为它没有起作用.. - codeObserver
我不常使用Eclipse,但是这里有一些指示:http://www.java-forums.org/eclipse/4278-how-change-jdk.html - Yishai

7

Eclipse Mars (4.5.1)


更改JDK兼容性

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

Compiler compliance level

如果您想更改其他细节,请取消选中“使用默认的兼容性设置”。

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

  • ,如果您想构建工作区中的所有项目:

    Compiler Settings Changed

  • ,如果您只想稍后构建一个或多个项目

    • 选择项目(在软件包资源管理器的左侧单击)>项目>构建项目

导出jar包

右键单击项目(在软件包资源管理器的左侧)>导出...>输入“jar”以过滤您拥有的选项>选择您想要的选项(可能是JAR文件可运行的JAR文件)>下一步>添加详细信息>完成


你能否提供一个Maven pom.xml的示例? - daisy

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,否则会导致一些函数无法使用,例如String.isEmpty()在java1.5版本中不存在。

3

您可以在Eclipse中配置源和目标Java版本。

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

javac -source 1.4 -target 1.4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接