Java調(diào)用系統(tǒng)命令或可執(zhí)行程序的方法介紹
通過java.lang.Runtime 類可以方便的調(diào)用操作系統(tǒng)命令,或者一個可執(zhí)行程序,下面的小例子我在windows和linux分別測試過,都通過?;驹硎牵紫韧ㄟ^ Runtime.getRuntime() 返回與當(dāng)前Java 應(yīng)用程序相關(guān)的運(yùn)行時對象,然后調(diào)用run.exec(cmd) 另啟一個進(jìn)程來執(zhí)行命令(cmd為要執(zhí)行的命令)。
一、JAVA調(diào)用可執(zhí)行程序
執(zhí)行一個.exe的文件,或通過已安裝的軟件打開一個特定格式的文件,如word、chm或mp3等等。
1. 在window下可以直接執(zhí)行一個.exe文件,如執(zhí)行我在F盤下的tomcat安裝文件,將命令寫為:
- String cmd = "F:\\apache-tomcat-6.0.20.exe";
2. 打開一個word文檔。如果系統(tǒng)已經(jīng)安裝了office應(yīng)用程序,就可以通過調(diào)用word的可執(zhí)行程序來打開一個word文檔:
- String cmd = "D:\\Program Files\\Microsoft Office\\OFFICE11\\WINWORD.EXE F:\\test.doc";
當(dāng)然這樣寫有點(diǎn)麻煩,我們想打開一個word文檔時只要雙擊就可以了,用不著去找WINWORD.EXE。要是打開每一種格式的文件都得去找它的可執(zhí)行程序,那可累死了,我們可以通過下面的代碼,打開任意一個已知格式的文件(只要安裝的打開這種文件格式的軟件),相當(dāng)于用鼠標(biāo)雙擊一個文件的圖標(biāo):
- String cmd = "cmd.exe /c start F:\\test.doc";
我用C寫了一個進(jìn)程操作的小例子,放在 linux 下編譯出的可執(zhí)行文件叫“fork_wait”,然后把我的java文件編譯成TestRunTime.class后扔到 linux 上,在控制臺執(zhí)行 java TestRunTime 命令,TestRunTime 和 fork_wait 程序均運(yùn)行成功。
- String cmd = "./fork_wait";
二、JAVA調(diào)用系統(tǒng)命令
通過調(diào)用進(jìn)程的 getInputStream() 方法,可以獲得執(zhí)行命令的標(biāo)準(zhǔn)輸出。在 windows 的cmd控制臺窗口和 linux 控制臺執(zhí)行系統(tǒng)名利的格式是一樣的,只是輸入的命令不同而已。