【问题标题】:JLine only works from IDEAJLine 仅适用于 IDEA
【发布时间】:2013-03-29 12:16:35
【问题描述】:

当代码在idea中运行时,我使用jline没有问题。使用 bat 文件运行,编辑字符不会发送到终端。

java -classpath ..\JActor\target\classes;..\JID\target\classes;target\classes;..\slf4j-api-1.7.2.jar;..\slf4j-simple-1.7.2.jar;..\apache-sshd-0.8.0\lib\sshd-core-0.8.0.jar;..\apache-sshd-0.8.0\lib\mina-core-2.0.5.jar;..\apache-sshd-0.8.0\lib\bcprov-jdk15-140.jar;..\jline-2.9.jar;..\joda-time-2.1.jar org.agilewiki.jasocket.sshd.SSHServer %1%

我检查了 jline jar 文件,它包含 jansi 和 hawtjni 的 fuse 源代码。

【问题讨论】:

  • 你的终端是单码的吗?
  • 我正在使用 sshd 来支持通过 PuTTY 进行远程访问。我很困惑从 IDEA 运行会有所作为,尽管我觉得 jline 期望与本地机器交互。因此,由于我是从 Windows 命令窗口运行的,所以这可能是一个问题。有什么办法强制吗?
  • 在这种情况下创建一个适合做 IO 的环境
  • 添加到我的代码中:System.out.println(t.isAnsiSupported()); System.out.println(t.isEchoEnabled()); System.out.println(t.isSupported());在dos窗口上得到真/假/真,在想法上得到假/假/真。环境?比如,为终端类型设置一个系统属性?
  • 从idea控制台复制/粘贴命令到windows cmd提示符不起作用?

标签: java jline


【解决方案1】:

原来,IDEA下使用的终端和dos框是不同的。在所有情况下都强制使用 IDEA 终端不起作用,但这样做:

    consoleReader = new ConsoleReader(in, out, new TerminalSupport(true) {});

【讨论】:

  • 从 Eclipse 中运行时会出现同样的问题,然后再从 Tomcat 中运行。给定的修复工作,虽然我仍然不明白为什么,即使我一直在查看 JLine2 代码。
猜你喜欢
  • 2016-03-19
  • 2017-05-06
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 2017-02-26
相关资源
最近更新 更多