3

私は、Java6で記述されたSolaris用のコマンドラインアプリケーションに取り組んでいます。多くのUnixツール(シェル、VIMコマンドモードプロンプトなど)で許可されているように、上下の矢印を使用して以前のコマンドの履歴をスクロールできるようにしたいと思います。

これを達成するための標準的な方法はありますか、それとも自分でロールする必要がありますか?

4

5 に答える 5

5

はい、GNUreadlineライブラリを使用してください。

于 2008-09-08T02:53:25.413 に答える
3

あなたはJLineのようなものを探していると思いますが、私はそれを使ったことがないので、その品質を証明することはできません。

彼女はオートコンプリートとコマンドラインの履歴を処理できるようです。最後のリリースは最近(今年2月)だったので、決して死んではいません。

于 2008-09-08T03:59:03.400 に答える
2

ledit は、Linux でそのようなことを行うのに最適です。おそらく、solaris で簡単にコンパイルできます。

明確化: ledit は他のコマンド ライン アプリへの呼び出しをラップし、ファイルを渡して履歴を永続的に保存することもできます。

ホームページはこちら: http://cristal.inria.fr/~ddr/ledit/

于 2008-09-16T20:57:34.727 に答える
1

GNU readline への JNI ベースのバインディングを提供する SourceForge プロジェクトhttp://java-readline.sourceforge.net/があります。私はそれをいじってみましたが (実際のプロジェクトでは使用されていません)、確かにすべての機能をカバーしています。

于 2008-09-16T22:01:34.243 に答える
1

警告: GNU readlineには GPL ライセンス条件が適用されます:

Readline はフリー ソフトウェアであり、GNU General Public License バージョン 2 の条件に基づいて配布されます。これは、誰かにリリースまたは配布するプログラムで Readline を使用する場合、そのプログラムはフリー ソフトウェアであり、GPL が適用されている必要があることを意味します。互換ライセンス。ライセンスを GPL 互換にするためのアドバイスが必要な場合は、licensing@gnu.org に連絡してください。

つまり、Readline を使用すると、GPL らしさがライブラリからプログラム全体に広がります。(ライブラリへの実行時リンクを許可し、ライブラリ自体の改善のためだけにオープンソースを必要とする LGPL とは対照的です。)

商用アプリケーションを開発していない場合でも、商用の世界にいる私たちにとって、これはショーストッパーです。

とにかく、ウィキペディアのページには、有望に聞こえる JLine を含むいくつかの代替案がリストされています。

余談ですが、私は医療製品を設計する会社で働いています。PC ソフトウェアの収益はゼロ (0) ドルです。当社のソフトウェアのほぼすべてが、当社が設計した組み込みシステム上で実行されます (このソフトウェアの販売やアップグレードから収益を得ることはありません。製品自体のみです)。エンド ユーザーの PC で実行できるソフトウェア診断ツールがある場合もあります。(顧客にリリースされていない設計/製造/テスト ソフトウェアで、GPL ライブラリを使用できる可能性があると思いますが、確かではありません) 医療製品はかなり厳密に管理されています。基本的に、ユーザーにとって安全であることを FDA に証明する必要があります。エンド ユーザーが「ああ、このソフトウェアが気に入らないので、微調整するか、XYZ 社のアフターマーケット代替品を使用します」と判断できるわけではありません。デバイス メーカーは大きな責任を負うことになります。

于 2009-01-05T18:51:22.607 に答える