Javaは外部プログラムを呼び出し、新しいプロセスを開く
背景:javaはマルチスレッドをサポートしています.これはほとんどのプログラムが満たす必要条件です.マルチスレッドはプログラムの「スループット」を増加させ、ユーザーのソフトウェアに対するスムーズな体験を高めることができるからです. また、javaプログラムは、新しいプロセスを開くか、javaと呼ばれる外部アプリケーションを呼び出すこともサポートします.ここでの実装javaは、Process、RunTimeの2つのクラスを提供します. これらのクラス間の関係: 1.プロセスビルダーを使用してプロセスインスタンスを構築します. 2.RunTimeでProcessインスタンスを構築します. コードは次のとおりです.
説明:
1.java基本クラスライブラリで「プロセス」を単語「プロセス」で識別します.すなわち、現実世界の「プロセス」はjavaでプロセスクラスとして定義され、「色」がColorクラスであるように定義される.【Java類は、現実世界のものがjava世界で探している対応するものです】
2.作成されたProcessインスタンスには端末やコンソールがないため、プロセスと対話するにはProcessが提供する3つのストリームが必要です.getInputStream、getOutPutSteam、getErrorStreamです.もちろん、プロセスに関連する他の方法も提供されています.3.「-c」は、liunxのshellコマンドを呼び出すコードjavaです.-cの意味はコマンド「/bin/bash」 の「オプション」は「chmod-R 766/opt/game_plugin/*」
// , shell
String cmds[] = {"/bin/bash","-c","chmod -R 766 /opt/game_plugin/*"};
//Process process1= Runtime.getRuntime().exec(cmds);
ProcessBuilder builder = new ProcessBuilder(cmds);
Process process = builder.start();
while(process.isAlive()) {//
Thread.sleep(1000);
}
System.out.println(" :"+process.exitValue());
説明:
1.java基本クラスライブラリで「プロセス」を単語「プロセス」で識別します.すなわち、現実世界の「プロセス」はjavaでプロセスクラスとして定義され、「色」がColorクラスであるように定義される.【Java類は、現実世界のものがjava世界で探している対応するものです】
2.作成されたProcessインスタンスには端末やコンソールがないため、プロセスと対話するにはProcessが提供する3つのストリームが必要です.getInputStream、getOutPutSteam、getErrorStreamです.もちろん、プロセスに関連する他の方法も提供されています.3.「-c」は、liunxのshellコマンドを呼び出すコードjavaです.-cの意味はコマンド「/bin/bash」 の「オプション」は「chmod-R 766/opt/game_plugin/*」