BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Abraham Marín Pérez 关注 9 他的粉丝 ,译者 刘嘉洋 关注 0 他的粉丝 发布于 2016年8月1日. 估计阅读时间: 2 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT