Java 10.04サーバー上のコンソール)でいくつかの奇妙な問題があります(実際にはminecraft-serverのコンソールですが、これは一般的な問題であり、minecraft固有の問題ではないと思います):矢印キーはありません正しく認識されません。Javaコンソール内で使用される場合は常に、次のようになります。
^[[A ^[[B ^[[C ^[[D
ただし、残りのシステムでは問題なく機能します。
私はすでにシステムロケールのチェックやJavaのみの特定のロケールの設定などのいくつかのことを試しましたが、運がありません。アイデアの背後にある理由とそれを修正する方法はありますか?
前もって感謝します。
編集(10月29日):最初の回答を読み、いくつかのことをテストした後、この問題についてさらに理解しました。現在、シェルの上でプログラムが実行されています。この問題は、主にJavaアプリケーション(またはそのコンソール、より具体的には))によって使用されるJavaのjlineライブラリの問題が原因です。
テストのために、OpenJDK6からOrcaleJDK6に切り替えたところ、問題は解決しました。 10.04にはバージョンがないため、OpenJDK7をテストすることはできません。これはコンソールの入出力の処理を担当するライブラリであるため、jlineとのいくつかの接続を想定しています。おそらく、アプリケーションで使用されているバージョンは、サーバーで使用されている古いOpenJDKバージョンと何らかの形で互換性がありません。ただし、手動でインストールしたOracle-Javaの最新バージョンと互換性があります。 ubuntuのjline-packageがこの図にどのように適合するかはまだわかりません。私にとっては、テストの有無にかかわらず、テストに違いはありません。
私が何かを見つけたら、この投稿をもう一度編集します。アイデアがあれば教えてください。
一部のコンソールプログラム(sh
など、bashの上部で実行されているプログラムである可能性があります)は、Upなどのコントロールキーの押下を抑制しません。 ↑ 矢印または下 ↓ 矢印など。これらのコンソールでは、投稿したようにキーを押したときのエコーが表示されます^[[A ^[[B ^[[C ^[[D
。それは実際には大きな問題ではありません。
デフォルトのシェルはbash
で、矢印キーのキーストロークを抑制します。 bashとは異なり、sh
シェルは矢印キーのストロークを抑制しません。ターミナルでsh
を実行し、矢印キーを押すことで、それを試すことができます。これらのコンソールを終了するには、プログラム固有の特定のコマンドを使用する必要があります。ほとんどの場合、それはquit
またはexit
です。 Minecraftサーバーの場合、stop
になります。