我希望Java程序具有不同的默认设置(详细程度,可能是支持的彩色输出),具体取决于其用途.在C中,有一个isatty()函数,如果文件描述符连接到终端,则返回1,否则返回0.在Java中是否有相同的功能?我没有在JavaDoc中看到任何有关InputStream或PrintStream的内容.
我有一套Java程序,在我们的Linux服务器上用作命令行工具.他们中的大多数都使用在STDERR上打印进度条的类,类似于Perl Term::ProgressBar.
我想在STDERR进入终端时显示进度条,并在重定向STDERR时自动禁用自身,以便重定向数据中没有所有类型的进度条.
检查System.console() == null是我的第一个想法,但重定向STDOUT就足以实现这一点true,即使STDERR仍在进入终端.有什么我可以检查特定于STDERR的东西吗?特定于Linux或使用本机API的解决方案可以满足我的需求.