java執(zhí)行系統(tǒng)命令linu
java執(zhí)行系統(tǒng)命令linu
通過java.lang.Runtime 類可以方便的調(diào)用操作系統(tǒng)命令,或者一個(gè)可執(zhí)行程序,下面的小例子我在windows和linux分別測試過,都通過。接下來是小編為大家收集的java執(zhí)行系統(tǒng)命令linux,希望能幫到大家。
java執(zhí)行系統(tǒng)命令linux的方法
基本原理是,首先通過 Runtime.getRuntime() 返回與當(dāng)前Java 應(yīng)用程序相關(guān)的運(yùn)行時(shí)對象,然后調(diào)用run.exec(cmd) 另啟一個(gè)進(jìn)程來執(zhí)行命令(cmd為要執(zhí)行的命令)。
一、JAVA調(diào)用可執(zhí)行程序
執(zhí)行一個(gè).exe的文件,或通過已安裝的軟件打開一個(gè)特定格式的文件,如word、chm或mp3等等。
1. 在window下可以直接執(zhí)行一個(gè).exe文件,如執(zhí)行我在F盤下的tomcat安裝文件,將命令寫為:
String cmd = "F:\apache-tomcat-6.0.20.exe";
2. 打開一個(gè)word文檔。如果系統(tǒng)已經(jīng)安裝了office應(yīng)用程序,就可以通過調(diào)用word的可執(zhí)行程序來打開一個(gè)word文檔:
String cmd = "D:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE F:\test.doc";
當(dāng)然這樣寫有點(diǎn)麻煩,我們想打開一個(gè)word文檔時(shí)只要雙擊就可以了,用不著去找WINWORD.EXE。要是打開每一種格式的文件都得去找它的可執(zhí)行程序,那可累死了,我們可以通過下面的代碼,打開任意一個(gè)已知格式的文件(只要安裝的打開這種文件格式的軟件),相當(dāng)于用鼠標(biāo)雙擊一個(gè)文件的圖標(biāo):
String cmd = "cmd.exe /c start F:\test.doc";
我用C寫了一個(gè)進(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)名利的格式是一樣的,只是輸入的命令不同而已。
如要執(zhí)行windows控制臺中ping命令,可寫為:String cmd = "ping www.baidu.com";
執(zhí)行l(wèi)inux的ls命令,可寫為:String cmd = "ls -l";
如果要執(zhí)行一個(gè)帶參數(shù)的命令,可使用 String 數(shù)組形式,如:
String[] cmd=new String[3]; cmd[0]="/bin/sh"; cmd[1]="-c"; cmd[2]="ls -l ./";
下面是我寫的小例子:
Java代碼
看了“java執(zhí)行系統(tǒng)命令linux”還想看:
1.android java如何執(zhí)行l(wèi)inux命令
4.android如何實(shí)現(xiàn)運(yùn)行底層linux外部命令