【发布时间】:2012-06-16 16:59:29
【问题描述】:
我正在创建自己的基于 Java 的学期程序,它与 SSH 和 Telnet 连接配合得很好。 但是现在我想像 xterm 或 gnome-terminal 这样打开一个本地直接连接。 我用 ProcessBuilder 运行“bash -i -l”并使用 getInputStream()/getOutputStream(),它似乎工作。 (我需要调用redirectErrorStream(true)) 我唯一的问题是 bash 似乎忽略了 TERM 环境变量并且没有生成任何 ANSI 代码。我得到一个提示,但运行 'ls -la' 缺少 CR 和颜色。此外,它不会回显输入(就像通过 SSH 连接一样)。
我使用 JCraft 的 JSch 库并调用 setPtyType("vt100") 进行 SSH 连接。 直接运行 bash 怎么办?
我没有使用 pty,需要吗?我认为分配一个 pty 需要本机代码。 如果是这样,pty 是如何工作的。
我试图查看 xterm 源代码,但那是一团糟。现在我记得为什么我永远不会回到 C 代码了。
有没有简单的解决办法。
谢谢。
【问题讨论】: