如何编译支持旧版Java的.java?

Pri*_*imm 31 java cross-platform compilation

我想将我的.java(几个)编译成一个.jar与至少Java 1.6和更新,最好Java 1.5和更新版本的Java 兼容的版本.(我有Java 1.7.0_5)

gti*_*333 19

是的,您可以在编译时设置编译器的版本.并将您的Java代码编译为旧版本的java.

来自Oracle文章:http: //docs.oracle.com/javase/1.5.0/docs/tooldocs/windows/javac.html

交叉编译示例

这里我们使用javac来编译将在1.4 VM上运行的代码.

% javac -target 1.4 -bootclasspath jdk1.4.2/lib/classes.zip \
             -extdirs "" OldCode.java
Run Code Online (Sandbox Code Playgroud)

您可能还需要以下参数来设置表示代码的版本.

-source release
Run Code Online (Sandbox Code Playgroud)

- 指定接受的源代码版本.

  • 似乎不能将 `-source` 版本设置为高于 `-target` 版本。`$javac abc/def/HelloDriver.java -source 1.7 -target 1.4``javac:源版本 1.7 需要目标版本 1.7` (4认同)

小智 11

从JDK 9开始,javac支持交叉编译的新选项

javac --release N ...
Run Code Online (Sandbox Code Playgroud)

这相当于

javac -source N -target N –bootclasspath rtN.jar
Run Code Online (Sandbox Code Playgroud)

  • 使用 JDK 10 为 java 8 编译代码我运行了命令 `javac --release 8 Main.java ` 结果在 java 8 上是可运行的。 (2认同)