首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何检查Java程序的输入/输出流是否连接到终端?

如何检查Java程序的输入/输出流是否连接到终端?
EN

Stack Overflow用户
提问于 2009-09-10 07:12:52
回答 3查看 11.8K关注 0票数 49

我希望Java程序有不同的默认设置(冗长,可能支持的彩色输出),这取决于它的使用。在C中,有一个isatty()函数,如果文件描述符连接到终端,该函数将返回1,否则返回0。在Java中有没有等价物呢?我还没有在InputStream或PrintStream的JavaDoc中看到任何东西。

EN

回答 3

Stack Overflow用户

发布于 2009-09-10 07:26:42

如果您的应用程序已连接,则System.console()将返回连接到的控制台,否则将返回null。(请注意,它只在JDK 6及更高版本中可用。)

票数 31
EN

Stack Overflow用户

发布于 2015-04-03 11:07:41

您可以使用jnr-posix库从Java调用原生posix方法:

代码语言:javascript
复制
import jnr.posix.POSIX;
import jnr.posix.POSIXFactory;
import java.io.FileDescriptor;

POSIX posix = POSIXFactory.getPOSIX();

posix.isatty(FileDescriptor.out);
票数 6
EN

Stack Overflow用户

发布于 2018-09-27 05:47:29

如果你不想自己编译C源代码,你可以使用Jansi库。它比jnr-posix小得多。

代码语言:javascript
复制
<dependency>
  <groupId>org.fusesource.jansi</groupId>
  <artifactId>jansi</artifactId>
  <version>1.17.1</version>
</dependency>

..。

代码语言:javascript
复制
import static org.fusesource.jansi.internal.CLibrary.isatty;

...

System.out.println( isatty(STDIN_FILENO) );
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1403772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档