为了账号安全,请及时绑定邮箱和手机立即绑定

如何编译到 Java 1.0

如何编译到 Java 1.0

动漫人物 2022-06-15 10:58:48
我想将我的代码编译到 Java 1.0 版。我设法编译成1.1:$ java -versionopenjdk version "1.8.0_181"OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-2~deb9u1-b13)OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)$ javac -target 1.2 -source 1.2 MyClass.java(works with some warnings)$ javac -target 1.1 -source 1.2 MyClass.java(works with some warnings)但该target选项似乎不接受1.0:$ javac -target 1.0 -source 1.2 MyClass.javajavac: invalid target release: 1.0如何以 JDK 1.0 为目标?我希望我的.class和.jar文件可以在尽可能多的系统中运行,包括非常旧的系统,包括 JDK 1.0。(我无法访问运行 JDK 1.0 的系统。)到目前为止我已经尝试过:编译ecj-3.0.2.jar:不支持-target 1.0,最低为-target 1.1.使用 JDK 1.0 编译:我无法运行它,它不是针对 Linux 发布的。使用 JDK 1.1 编译:我无法运行它,它不是针对 Linux 发布的。使用 JDK 1.2 编译:Linux i386 javac 二进制文件不起作用,它给了我Segmentation fault。使用 JDK 1.3 编译:javac: invalid target release: 1.0.使用 JDK 1.4 编译:javac: invalid target release: 1.0.使用 JDK 1.5 编译:javac: invalid target release: 1.0. 这是第一个带有 Linux amd64 二进制文件的 JDK。使用 JDK 1.6 编译:javac: invalid target release: 1.0.使用 JDK 1.7 编译:javac: invalid target release: 1.0.使用 JDK 1.8 编译:javac: invalid target release: 1.0. (当我问这个问题时,我首先得到了这个错误。)我认为这-target 1.0可能有效的原因是这个答案:https ://stackoverflow.com/a/26148408
查看完整描述

2 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

在 Java 8 中,最低目标是 JDK 1.1。在 Java 9 中,最低目标是增加 JDK 1.6 (Java 6)。

您正在尝试使您的代码与尽可能多的 Java 版本兼容,这是一件好事,但由于 Java 6 自 2015 年以来已经停止服务,因此实际上没有人应该尝试编写与 Java 5 或更早版本一起运行的新代码。

编辑:此外,在 Java 9 中,他们在 Javac 中引入了该标志,这是替代and now--release的首选选项。基本上是一样的东西,但它还有一个额外的好处,就是将你的引导类路径与目标版本一起设置,这是一个巨大的便利。实际上,这可以防止您在编译器中进行设置,但会意外使用 Java 7 或更高版本的一些新类或语言特性。-source-target--release 6-source 1.6 -target 1.6--release 6


查看完整回答
反对 回复 2022-06-15
?
慕仙森

TA贡献1827条经验 获得超7个赞

javac -target 1.1(并且不使用后来添加的任何类或方法)将使其在 JDK >=1.0.2(1995-09-16 发布)上工作。回溯更多是不可行的,因为早期的 JDK 不公开可供尝试。

标志值影响 .class 文件中存储的javac -target ...次要(字节偏移 4 和 5)和主要(字节偏移 6 和 7)版本号:

  • javac -target 1.1在 JDK 1.8 中生成版本 45.3,受 JDK 1.0.2(1995-09-16 发布)、JDK 1.1.*(1997-02 发布)、JDK >=1.2(1998-12 发布)支持。[来源]

  • javac在 JDK 1.0.2(从jdk-1_0_2-win32-x86.exewine在 Linux 上运行)生成版本 45.3。

  • 对于 k ≥ 2,JDK 版本 1.k 支持 45.0 到 (44+k).0 范围内的类文件格式版本(含)。[来源]

  • javac -target 1.2生成版本 46.0,受 JDK >=1.2 支持。

  • javac -target 1.3生成版本 47.0,受 JDK >=1.3 支持。

  • javac -target 1.4生成版本 48.0,受 JDK >=1.4 支持。


查看完整回答
反对 回复 2022-06-15
  • 2 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信