在macOS 11.6中,运行这个通过的junit测试,其中终端和TerminalBuilder来自jline3:
@Test
void test1() throws IOException {
Terminal t = getTerminal();
Assertions.assertNotNull(t);
}getTerminal:
public Terminal getTerminal() throws IOException {
return TerminalBuilder.terminal();
}替代getTerminal:
public Terminal getTerminal() throws IOException {
return TerminalBuilder.builder().system(true).build();
}我在控制台中收到了这条警告消息,其中任何一个版本的getTerminal:
警告:无法创建系统终端,创建哑终端(启用调试日志以获取更多信息)
显然我想要一个系统终端。我在类路径上有Jansi和JNA,以及完整的jline3。我尝试在Eclipse内部和命令行中使用maven运行。结果是一样的。
对如何获得系统终端有什么建议吗?
发布于 2021-09-28 17:59:25
为了获得系统终端,您需要在命令行上运行您的应用程序,因为System.in和System.out必须附加到您的控制台。当您运行junit测试时,这不是这样的情况,在使用maven启动应用程序时也不是这样。
您应该编写一个应用程序,并使用java命令启动它,以便获得系统终端。
https://stackoverflow.com/questions/69247723
复制相似问题