8

JLine 2 (v2.13) を Socket IO と組み合わせて使用​​し、通常の telnet クライアント経由でアクセスできるアプリ用の管理コンソールを作成しています。ただし、改行を出力する必要があるときに奇妙な記号を出力することがわかりました。

act.app.restart  restart app^Jact.job.list  List jobs

正しい出力は次のようになります。

act.app.restart  restart app
act.job.list     List jobs

コードをたどると、問題の原因となった次のコード行が見つかりました。

ここに画像の説明を入力

もう 1 つの奇妙な点は、上向き矢印を押して履歴を取得すると、コンソールが出力され^[[A、他に何も起こらないことです。

誰にもアイデアはありますか?

更新:関連するソースコードを追加

  1. 着信 telnet 接続を受け入れるコード:

ここに画像の説明を入力

  1. ConsoleReaderを作成してコマンドをディスパッチするコード:

ここに画像の説明を入力

更新 2

すいません、いつの間にか消えてました。私のプロジェクトが私に新鮮な空気を吹き込んでくれるので、戻ってきてください。だからここに何が起こったのですか:私は作成し、問題PrintWriterの回避策としてそれを使用しました:^J

ここに画像の説明を入力

jline2ただし、 を telnet セッションと一緒に使用すると、他にも多くの問題があります。

  1. タイプ<TAB>は、完全なリストをアクティブにする代わりにタブを表示します。ただし、Enter キーを押すと、完全なリストとエラー メッセージが表示されます。 ここに画像の説明を入力
  2. 矢印<UP>を入力して を表示し^[[A、Enter キーを押すと、最後のコマンドが実行されます。ただし、コマンドライン編集を失いました

問題はまだ残っており、ガイドが必要なだけで解決する方法があるはずだと思います...

4

1 に答える 1