对 java -version 感到困惑

对 java -version 感到困惑

对于 Unix 上的每个程序/实用程序,我会键入程序名称,后跟 --version 以检查其版本,如下所示

program --version

如果我理解正确的话,双破折号 -- 用于指定名为 version 而不是 -version 的单个选项,这意味着 7 个选项 v、e、r、s、i、o、n。那么为什么对于 java 和 javac 我必须使用 -version 和一个破折号。 Java --version 甚至不起作用。有人可以向我解释一下吗?先感谢您。

答案1

根本问题是每个应用程序都实现自己的参数解析。由此可见,每个人/组织可能标准化一种格式,但你不能说服每个人都遵循单一标准。

有几个历史包袱使情况变得更糟:

  • BSD 工具和 POSIX 一般只支持紧凑-v格式。
  • GNU 工具在 POSIX 上进行了扩展,也支持人类可读的--version格式。他们无法支持,-version因为它含糊不清。
  • 微软标准化了斜杠作为主角而不是连字符。由于他们为 Windows 开发了所有核心工具,因此他们基本上决定了参数解析,这意味着它更加统一。
  • 一些组织仅有的支持人类可读的选项,因此他们可以使用单个连字符作为前缀来节省输入。

相关内容