加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

为什么’java -version’转到stderr?

发布时间:2020-12-14 05:38:44 所属栏目:Java 来源:网络整理
导读:有没有什么特别的原因,java转换成stderr的结果? 例如,该命令从Windows的提示符行执行: java -version java_version.txt 将文件java_version.txt留空. 编辑:执行java.exe后没有任何参数的打印输出也是一样. 编辑:只是出于一种纯粹的好奇心,我检查了它是否
有没有什么特别的原因,java转换成stderr的结果?

例如,该命令从Windows的提示符行执行:

java -version > java_version.txt

将文件java_version.txt留空.

编辑:执行java.exe后没有任何参数的打印输出也是一样.

编辑:只是出于一种纯粹的好奇心,我检查了它是否一直是这样,事实证明它实际上是. java -version在JDK 1.1.8中也是JDK 1.2.2中的stderr,但是没有任何参数的java.exe的输出没有.

解决方法

Is there any special reason for the results of java -version going to stderr?

AFAIK没有特别的理由.它只是java命令的实现方式.

我的简短调查显示,这与大多数Linux命令行为是否一致…我尝试使用的其他一切都使用了stdout.但是–version / -version选项是一个约定,而不是任何标准所要求的.

你能做什么/应该怎么办?

>在shell脚本或批处理文件中应该很容易捕获stderr而不是stdout.
>这样做不应该有任何风险. Oracle无法更改Java工具链以将-version输出发送到stdout,而不会潜在地破坏客户脚本.这是非常不可能的1.

1 – 这里证明是不太可能的:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4380614.请注意“解决方案:不修复”…和最后的评论.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读