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

如何将错误消息打印到标准错误?

发布时间:2020-12-15 19:01:53 所属栏目:安全 来源:网络整理
导读:在UNIX中,我应该编写一个Java文件,将“Exit 1”打印到标准错误,然后以状态1退出. 这是我的方法.. System.err.println("EXIT 1");System.exit(1); 这是我应该做的吗? 如果是这样,我怎么能在Unix shell中使用它?当我在bash中编译并运行它时,它只打
在UNIX中,我应该编写一个Java文件,将“Exit 1”打印到标准错误,然后以状态1退出.

这是我的方法..

System.err.println("EXIT 1");
System.exit(1);

这是我应该做的吗?

如果是这样,我怎么能在Unix shell中使用它?当我在bash中编译并运行它时,它只打印“EXIT 1”(因此它与System.out.println做同样的事情,我为什么要使用“err”?).这里的“标准错误”是什么?

每个节目都有三个流:

>标准输入(stdin),通常来自键盘.暴露为System.in
>标准输出(标准输出),通常进入控制台.暴露为
System.out
>标准错误(stderr),通常也会进入控制台.公开为System.err

你的程序是正确的.它会打印到stderr,但在正常情况下,stderr流会转到控制台,就像stdout流一样.

但是,您应该使用stderr而不是stdout来处理错误消息的原因是因为您可以重定向它.这意味着您将stderr的内容发送到文件而不是控制台.例如,您可以在bash,cmd,Powershell等中执行此操作:

$java Program 2> errors.txt

现在,对System.err.println()的所有调用都将转到errors.txt而不是屏幕,这有助于调试.

(编辑:李大同)

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

    推荐文章
      热点阅读