作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
在 UNIX 中,我应该编写一个 Java 文件,它将“EXIT 1”打印到标准错误,然后以状态 1 退出。
这是我的方法..
System.err.println("EXIT 1");
System.exit(1);
这是我应该做的吗?
如果是这样,我应该如何在 Unix shell 中使用它?当我在 bash 中编译并运行它时,它只打印“EXIT 1”(所以它与 System.out.println 做同样的事情,我为什么要使用“err”?)。这里的“标准错误”是什么?
最佳答案
每个正在运行的程序都有这三个流:
System.in
System.out
System.err
你的程序是正确的——它确实打印到标准错误。但在正常情况下,stderr 流与 stdout 流一样进入控制台,因此在视觉上无法区分。
但是,您应该使用 stderr 而不是 stdout 来获取错误消息的原因是重定向。这意味着您将 stderr 发送到文件而不是控制台。同时,stdout 不会受到影响,因为这两个流是独立的。
例如,您可以在 bash、cmd、PowerShell 等中执行此操作:
$ java Program 2> errors.txt
现在,所有带有 System.err.println()
的输出都将在 errors.txt
中结束,而 System.out.println()
code> 仍将显示在屏幕上。这有助于调试。
关于java - System.err 的意义何在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21197737/
我是一名优秀的程序员,十分优秀!