首页 > 解决方案 > Java 11:javac --release 和 -source 和 -target 命令行参数有什么区别?

问题描述

有谁知道使用 --release 和旧的 -source 和 -target 命令行参数之间的区别?

在 javac 手册页中: -source 提供与指定版本的源兼容性 -target 生成特定 VM 版本的类文件

--release 为特定的 VM 版本编译。支持的目标:6、7、8、9、10、11

--release 可以将 -source 和 -target 绑定到同一版本吗?

标签: javajavacjava-11

解决方案


--release标志不仅设置源和目标版本,而且还使编译器使用与指定版本对应的 JDK 库的符号表,防止您意外使用编译 JDK 中存在但指定中不存在的 API版本。该--release标志是后来添加的,在大多数情况下,应该取代--sourceand的使用--target


推荐阅读