色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java如何實現了cmd多條命令交互操作?

夏志豪2年前63瀏覽0評論

在java中調用操作系統的程序時,可以使用java.lang.Runtime.getRuntime().exec()來實現,但是這個方法在調用命令后就直接返回當前線程了;程序設計時,有時候需要在等待調用的系統程序完成操作后,當前線程才能做下一步操作,此時可以用類Process的方法waitFor()來實現,它會阻塞當先線程直至調用程序運行結束java.lang.Processprocess=java.lang.Runtime.getRuntime().exec("");//執行命令生成cubetry{

process.waitFor();

}catch(InterruptedExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

proc_stat=checkFileSize()?"1":"3";

[java]viewplaincopy

java.lang.Processprocess=java.lang.Runtime.getRuntime().exec("");//執行命令生成cube

try{

process.waitFor();

}catch(InterruptedExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

proc_stat=checkFileSize()?"1":"3";

Process的方法waitFor()介紹,取自API文檔:

waitFor

publicabstractintwaitFor()

throwsInterruptedException導致當前線程等待,如果必要,一直要等到由該Process對象表示的進程已經終止。如果已終止該子進程,此方法立即返回。如果沒有終止該子進程,調用的線程將被阻塞,直到退出子進程。

返回:

進程的出口值。根據慣例,0表示正常終止。

拋出:

InterruptedException-如果當前線程在等待時被另一線程中斷,則停止等待,拋出InterruptedException。

自我實踐:

執行多條cmd命令

Stringcmd="cmd/cG:&&cdG:\\projects\\testProject&&startmvnpackage";

Processprocess=Runtime.getRuntime().exec(cmd);

process.waitFor();

process.exitValue();

這樣可以執行多條命令。

值得注意的是:執行startmvnpackage,會開啟窗口,調用process.waitFor(),主線程不會被阻塞,而是會返回執行成功process.exitValue()==0

將startmvnpackage中start去掉后,主線程就會阻塞,直到cmd命令開啟的子進程執行完畢,然后執行主線程。