我在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