我想将我的代码编译为Java版本1.0。
我已经成功将代码编译到
我已经成功将代码编译到
1.1
。$ java -version
openjdk 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.java
javac: 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://dev59.com/aIPba4cB1Zd3GeqPyuZ2#26148408