A-A+

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

2016年08月03日 Linux 新闻 暂无评论 阅读 134 次

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

查看英文原文Oracle Paves the Way to Standardise Command Line Options in the JDK

标签:

给我留言

Copyright © SEARU.ORG 保留所有权利.   Theme  Ality 网站地图 360网站安全检测平台

用户登录

分享到: