4

less例如,当我正在编写将文本输出到标准输出并使用颜色(通过转义序列)的程序时,如果输出到其他程序(如, )或文件,我想禁用这些颜色grep,因为颜色代码会混淆输出。

是否可以从Java进程中做到这一点?

4

1 回答 1

4

我通过以下方式解决了它(在此处描述):

System.console()将返回Console对象,如果有一些终端连接到应用程序,null如果您将输出管道输出到其他应用程序或将其保存到文件,它将返回。

因此它变成了一个简单的检查:

if (System.console() == null) {
  // ... no console, print dull plaintext
} else {
  // we have a console, now we can output colors as well
}

(在 Linux Mint 10 上测试)

于 2012-09-06T02:56:44.313 回答