私はJavaで非常にナビーです。 は、私は次のコードを持っており、実行フローは、私の意図とは異なります。フロー実行Java JSsh
channel = session.openChannel("shell");
OutputStream ops = channel.getOutputStream();
PrintStream ps = new PrintStream(ops, true);
channel.connect();
String sudo = "sudo su - user";
String copy = "copy from a to b;
String cd = "cd a directory";
String runload = "run a scrip in unix;
String cd1 = "cd a directoryu";
String executeload = "run a scrip in unix";
ps.println(sudo);
ps.println(copy);
ps.println(cd);
ps.println(runload);
ps.println(cd1);
if (db.runload().contains("SUCCESS")) {
ps.println(executeload);
//execute this only if runload was success
} else {
System.exit(1);
}
ポイントは「ブロックがあれば、」前の行の前に実行されていることです。 runload
はテーブルに情報をロードするスクリプトで、executeload
の前提条件です。この場合、executeload
はjava.lang.NullPointerException
を投げます。
私の質問です:このコードの流れを制御する方法ですか?前の行はすべて次の行の前提条件です。私の意図は、電流が最後に実行されたときに次の行を実行することです。
ほとんどの場合、あなたはそれについて心配する必要はありません。コンパイラは、ステートメントの実行順序を変更することによって実行時間を最適化することができます。 –
私の場合、重要です。私が思う実行フローは、このようにして、コードのすべての行が次の行のための前提条件です。 – user3660050