Gav*_* Z. 21 java unix bash stderr
在UNIX中,我应该编写一个Java文件,将"EXIT 1"打印到标准错误,然后以状态1退出.
这是我的方法..
System.err.println("EXIT 1");
System.exit(1);
Run Code Online (Sandbox Code Playgroud)
这是我应该做的吗?
如果是这样,我怎么能在Unix shell中使用它?当我在bash中编译并运行它时,它只打印"EXIT 1"(所以它与System.out.println做同样的事情,我为什么要使用"err"?).这里的"标准错误"是什么?
Mul*_*er0 30
每个正在运行的程序都有这三个流:
System.inSystem.outSystem.err你的程序是正确的 - 它打印到stderr.但在正常情况下,stderr流就像stdout流一样进入控制台,因此它们在视觉上无法区分.
但是,您应该使用stderr而不是stdout来处理错误消息的原因是重定向.这意味着您将stderr发送到文件而不是控制台.同时,stdout将不受影响,因为这两个流是独立的.
例如,您可以在bash,cmd,PowerShell等中执行此操作:
$ java Program 2> errors.txt
Run Code Online (Sandbox Code Playgroud)
现在,所有输出System.err.println()都将结束errors.txt,同时System.out.println()仍然会进入屏幕.这有助于调试.
| 归档时间: |
|
| 查看次数: |
47500 次 |
| 最近记录: |