この記事の例では、Java が Linux コマンドを実行する方法について説明します。皆さんの参考に共有してください。具体的な実装方法は以下の通りです。
次のようにコードをコピーします。
public class StreamGobbler extends Thread {
入力ストリームは;
文字列型。
public StreamGobbler(InputStream は、String 型) {
this.is = です;
this.type = タイプ;
}
public void run() {
試す {
InputStreamReader isr = 新しいInputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
文字列行 = null;
while ((line = br.readLine()) != null) {
if (type.equals("エラー")) {
System.out.println("エラー:" + line);
} それ以外 {
System.out.println("デバッグ:" + line);
}
}
キャッチ (IOException ioe) {
ioe.printStackTrace();
}
}
}
プライベート void シェル (文字列 cmd)
{
String[] cmds = { "/bin/sh", "-c", cmd };
プロセスプロセス。
試す
{
プロセス = Runtime.getRuntime().exec(cmds);
StreamGobbler errorGobbler = new StreamGobbler(process.getErrorStream(), "エラー");
StreamGobbler OutputGobbler = new StreamGobbler(process.getInputStream(), "Output");
errorGobbler.start();
出力ゴブラー.スタート();
試す
{
process.waitFor();
}
catch (中断例外 e)
{
e.printStackTrace();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
パラメータ cmd は Linux コマンドです。一度に実行できるコマンドは 1 つだけです。
1. Java Runtime.exec() に関する注意:
① waitFor() メソッドを呼び出す前に必ずデータ ストリームを読み取ります。 ② 常に最初に標準エラー ストリームから読み取り、次に標準出力ストリームを読み取ります。
2. システム コマンドを実行する最良の方法は、bat ファイルまたはシェル スクリプトを作成することです。
この記事が皆さんの Java プログラミングに役立つことを願っています。