Oracle 为标准化 JDK 中命令行选项作准备

Oracle公司的JavaSE语言工具团队提出JEP293,旨在为JDK工具中的命令行选项引入一套统一的标准,解决不同工具间选项格式不一致的问题。新标准将遵循UNIX风格,基于getopt(3),并确保向后兼容性。

Oracle公司Java SE语言工具团队领导Jonathan Gibbons创造了JEP 293,以引进一套JDK工具中的命令行选项准则来修复现有的它们之间存在的差异。JEP目前还没有目标版本,所以最快将会和Java 10一起交付。然而,考虑到它仅仅是为新的选项创造一套准则,而不是修改现有的选项,所以可能需要一段时间才能感受到它的效果。

正如在JEP中所述,JDK中不同的工具的命令行选项格式都不对齐。比如说,短的选项有时候只有一个字母(比如-p表示一个模块),但有时候又超过 一个字母(比如说现有的-cp指令代表路径)。同时,相同的选项会被不同的工具以不同的方法调用,比如javac中的-version指令与 pack200中--version指令(请注意这里是两个破折号)。这会给创造JDK工具上的功能带来困难,也会给新的开发者熟悉了解命令行选项带来困 难。

为了解决这种情况,新的JEP将为新的命令行选项创造一套新的标准,类似于UNIX的风格,很大程度上基于getopt(3)。虽然可以在文档中查看到完整的内容,但是与用户息息相关的一些准则罗列在下面:

选项必须有一个长的和一个短的格式。短格式由一个破折号和一个字母组成,长格式有两个破折号开头,之后可以添加需要多的字母和破折号。

短选项可以相互组合,例如说-m -k与-mk相同。

选项需要有一个可选参数。

在所有工具中,帮助选项都必须保持一致。

与向后兼容的理念一致,JEP的准则只适用于新的命令行选项,但不适用于现有的命令行选项。这就代表着,即使它们不满足准则,一部分或者所有的现有 选项将不被移除。此外,新的准则选项将与现有的准则一同运作,所以有的功能将会拥有新的和旧的命令行选项。虽然这听上去是向后兼容的一个很好的折中和改 进,但是讨论组中一些人指出一些模棱两可的问题将很难解决。随着发展,准则将进行调整以适应这些问题。

文章转载自 开源中国社区[http://www.oschina.net]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值