JavaアプリケーションでランタイムまたはProcessBuilderを使用せずにUNIXコマンドを実行する方法について誰かがアイデアを持っているかどうか興味があります
質問する
4247 次
3 に答える
5
Apache Commons ExecライブラリのDefaultExecutorを使用してコマンドを実行できますが、内部的には and を使用します。java.lang.Runtime
java.lang.Process
Apache コマンド実行 API はより洗練されており、Java ランタイムよりも多くの機能を提供するため、このライブラリをランタイムで使用することをお勧めします。また、終了値も処理します。
于 2012-08-16T13:14:43.647 に答える
0
かなりの数の方法があります。しかし、あなたの動機を理解せずに、それらのいずれも望ましいとは言えません。
たとえば、C や Perl などの言語でプログラムを作成し、ソケットでリッスンします。その後、Java プログラムはソケットに接続し、spawn するプログラムの名前、引数などを含むメッセージを送信できます。受信側プログラムは先に進み、これを spawn できます。
于 2012-08-16T13:24:07.773 に答える
-1
Unix コマンドを実行するには、次の 2 つの方法があります。
- あなたが使用することができ
java.lang.Runtime
ますjava.lang.Process
- JNI/JNA を使用して共有ライブラリにアクセスできます。したがって、これを使用して OS レベルのコマンドにアクセスし、プロセスを作成できます (
system()
Unixexec*()
では)。
2 番目のアプローチはお勧めしません。正しく行うのは難しく、最終的には、Runtime.exec()
機能のみが必要な場合は、Java でコマンドを再度実装できます。たとえば、 を実装するには、次ls
を使用します。File.listFiles()
于 2012-08-16T13:55:12.743 に答える