Javaコンソールアプリケーションからless
コマンドを実行して、ページングを実行する必要があります。しかし、私が外部コマンドを実行するために見つけた唯一の方法はRuntime.getRuntime().exec()
です。ストリームを介して入出力を書き込み/読み込みする必要があります。したがって、cat
のようなコマンド(less
は実際にはcat
のように動作します)が、ページング機能が必要です。Javaコンソールアプリケーションからのページングで "less"を実行する方法は?
Cでは、system()
を使用します。 Rubyでは、Kernel.execがその仕事をしています。
これをJavaで実行する方法はありますか?
- しかし、引数として渡さずに端末を取得する方法はありますか?私はスクリプトで私のツールをラップすることができますが、私はむしろそれを避けるだろう。 – futlib
基本的にPOSIX関数 'ttyname'のJNIラッパーが必要です。自分で作るか、JPosix(http://kanga.org/jposix/)のような既存のPOSIX Javaライブラリを使うことができます。名前をバイト配列として返す 'ttyname'というメソッドがありますが、試していませんしかし、 – Joni
私は本質的に 'ttyname'と' isatty'のラッパーであるライブラリをgithubに入れました。まだ少し粗いが、使用可能でなければなりません:https://github.com/joni/TTYUtil – Joni