0

在运行此通过 junit 测试的 macOS 11.6 中,Terminal 和 TerminalBuilder 来自 jline3:

@Test
    void test1() throws IOException {
        Terminal t = getTerminal();
        Assertions.assertNotNull(t);
    }

获取终端:

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 从命令行运行。结果是一样的。

关于如何获得系统终端的任何建议?

4

1 回答 1

0

您需要在命令行上运行您的应用程序才能获得系统终端,因为System.in并且System.out必须附加到您的控制台。当您运行 junit test 时不是这种情况,在使用 maven 启动应用程序时可能也不是。

您应该编写一个应用程序并使用java命令启动它以获得系统终端。

于 2021-09-28T17:59:25.910 回答