【发布时间】:2012-06-10 18:48:12
【问题描述】:
我正在使用 Jline2 框架在 Java 中构建控制台应用程序。在 Windows 7 上从 Eclipse 启动应用程序时,shell 立即存在,不等待用户输入命令。
你知道什么可能是错的吗?
【问题讨论】:
标签: java console-application jline
我正在使用 Jline2 框架在 Java 中构建控制台应用程序。在 Windows 7 上从 Eclipse 启动应用程序时,shell 立即存在,不等待用户输入命令。
你知道什么可能是错的吗?
【问题讨论】:
标签: java console-application jline
如果您使用的是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);
}
【讨论】:
终于找到了一个小技巧让它发挥作用。将以下VM选项添加到执行参数(Run Config/Debug Config)
-Djline.terminal=jline.UnsupportedTerminal
这将使代码在 Eclipse 中运行。但是,在运行过程中可能会向控制台写入一些奇怪的字符。
希望这会有所帮助。
【讨论】: