all。UNIXコマンドと変数を使用してJavaでループするwhile
私はこのJavaの新機能ですが、UNIX(LinuxおよびAIX)で多くの時間をスクリプト化しているので、ファイルのリストを開いて保存するプログラムを修正するように求められています特定のプログラム。
UNIXから取得している変数は、ファイルへのパス名です。私はそれらの幾分敏感な性質のために変数を総称に置き換えました。このプログラムは移植可能ではなく、このマシン上でのみ実行されることを覚えておいてください。
"ps -ef | grep programname | grep -v grep | wc -l"コマンドの出力を取得し、終了する前に "programname"のインスタンスが2つあることを確認するwhileループを作成する必要があります。ループ。 "Build whileループ"が必要な行は、後にマウスの移動とキーの押下で構成されます。
変数 "countvariable"は、ループのテストに必要な場合にのみ存在します。その後、残りの質問は、パターンに一致すると、結果はあなたが得るものです確認してすべてのプロセスを見つけることについてです。あなたはループを作るとのThread.sleepを待つ方法を知ってい
/* */ import java.awt.AWTException;
/* */ import java.awt.Robot;
/* */ import java.io.IOException;
/* */
/* */ public class auto
/* */ {
/* 7 */ static final String pathvariable1 = "pathvariable1";
/* 8 */ static final String pathvariable2 = "pathvariable2";
/* 9 */ static final String pathvariable3 = "pathvariable3";
/* 10 */ static final String countvariable = "countvariable";
/* 11 */ static final String countvariable = System.getenv("countvariable");
/* 12 */ static final String ENVNAME = System.getenv("pathvariable1");
/* 13 */ static final String pathvariable2 = System.getenv("pathvariable2");
/* 14 */ static final String pathvariable3 = System.getenv("pathvariable3");
/* */ public static void main(String[] paramArrayOfString) {
/* */ try {
/* 13 */ String[] arrayOfString = { ENVNAME +"/bin/myprogram","-G","pathvariable2/pathvariable3/scenario.xml" };
/* 14 */ Runtime localRuntime = Runtime.getRuntime();
/* 15 */ Process localProcess = localRuntime.exec(arrayOfString);
/* */ }
/* */ catch (IOException localIOException)
/* */ {
/* 19 */ localIOException.printStackTrace();
/* */ }
/* */ try
/* */ //Build while loop here to wait for 2 program incidents (ps -ef | grep programname...
/* 23 */ Robot localRobot = new Robot();
/* 24 */ localRobot.delay(5000);
/* 25 */ localRobot.keyPress(10);
///More robot stuff goes here....
/* */ }
/* */ catch (AWTException localAWTException) {
/* 60 */ localAWTException.printStackTrace();
/* */ }
/* */ }
/* */ }
/* Location:
* Qualified Name: auto
* JD-Core Version: 0.6.0
*/
を役に立てば幸いで最初の行を置き換える
あなたの質問は何ですか?注意: 'grep -C programname'でグリッピングを単純化することもできますし、' pidof'でグリッピングを単純化することもできます(プラットフォーム上で利用可能な場合)。 Gnu/Linuxではそうです。 –
なぜcountvariable、pathvariable2、〜3を2回宣言しようとしますか? –
私はそれらを文字列として定義し、文字列の値に変数の内容を入力します。 1からのホールドオーバー。4、このファイルはもともとJava 5では動作しないコメント慣習の##を持っていたと思いますが、あなたの質問は理にかなっています! – skyhack