我正在尝试使用 apache sshd-core 将基于 Java 的 SSH 服务器从使用 jline2 迁移到 jline3 并使用 JSch 客户端连接和执行 shell 命令。使用 jline2,一切正常。
使用 jline3,它在 OSX 中通过 SSH 客户端执行命令时工作得很好。但是,我似乎无法让它与 JSch 一起使用。
在下面附加堆栈跟踪:
Exception in thread "Thread-4" org.jline.reader.EndOfFileException: org.jline.utils.ClosedException: InputStreamReader is closed.
at org.jline.keymap.BindingReader.readCharacter(BindingReader.java:140)
at org.jline.keymap.BindingReader.readBinding(BindingReader.java:109)
at org.jline.keymap.BindingReader.readBinding(BindingReader.java:60)
at org.jline.reader.impl.LineReaderImpl.readBinding(LineReaderImpl.java:709)
at org.jline.reader.impl.LineReaderImpl.readLine(LineReaderImpl.java:515)
at org.jline.reader.impl.LineReaderImpl.readLine(LineReaderImpl.java:385)
at test.ssh.jline3.EchoSshSessionInstance.run(EchoSshSessionInstance.java:64)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.jline.utils.ClosedException: InputStreamReader is closed.
at org.jline.utils.InputStreamReader.read(InputStreamReader.java:191)
at org.jline.utils.NonBlockingReader.run(NonBlockingReader.java:273)
... 1 more
示例项目可以在github上找到
提前致谢。