通过Eclipse调试Jline2应用程序

时间:2012-06-06 17:57:39

标签: java console-application jline

我正在使用Jline2框架在Java中构建一个控制台应用程序。在Windows 7上从Eclipse启动应用程序时,shell立即存在,并且不会等待用户输入命令。

有什么可能出错的想法吗?

2 个答案:

答案 0 :(得分:16)

终于找到了一个让它发挥作用的小技巧。将以下VM选项添加到执行参数(运行配置/调试配置)

-Djline.terminal=jline.UnsupportedTerminal

这将使代码在Eclipse中运行。但是,在运行过程中可能会向控制台写入一些奇怪的字符。

希望这有帮助。

答案 1 :(得分:0)

如果您使用的是 picocli with jline2

您可以将启发式委托给 picocli,这似乎比 jline2 启发式更好(而不是使用 -Djline.terminal=jline.UnsupportedTerminal

代码看起来像:

// JLine 2 does not detect some terminal as not ANSI compatible, like Eclipse Console
// see : https://github.com/jline/jline2/issues/185
// So use picocli heuristic instead :
if (!Help.Ansi.AUTO.enabled() && //
          Configuration.getString(TerminalFactory.JLINE_TERMINAL, TerminalFactory.AUTO).toLowerCase()
                 .equals(TerminalFactory.AUTO)) {

     TerminalFactory.configure(TerminalFactory.NONE);
}

(见https://github.com/jline/jline2/issues/185