java執行Linux命令的方法
本文實例講述了java執行Linux命令的方法。分享給大家供大家參考。具體實現方法如下:
public class StreamGobbler extends Thread {
InputStream is;
String type;
public StreamGobbler(InputStream is, String type) {
this.is = is;
this.type = type;
}
public void run() {
try {
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
if (type.equals("Error")) {
System.out.println("Error?? :" + line);
} else {
System.out.println("Debug:" + line);
}
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
private void shell(String cmd)
{
String[] cmds = { "/bin/sh", "-c", cmd };
Process process;
try
{
process = Runtime.getRuntime().exec(cmds);
StreamGobbler errorGobbler = new StreamGobbler(process.getErrorStream(), "Error");
StreamGobbler outputGobbler = new StreamGobbler(process.getInputStream(), "Output");
errorGobbler.start();
outputGobbler.start();
try
{
process.waitFor();
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
其中參數 cmd 為Linux命令。每次只能執行一條命令。
1.Java Runtime.exec()注意事項:
① 永遠要在調用waitFor()方法之前讀取數據流
② 永遠要先從標準錯誤流中讀取,然后再讀取標準輸出流
2.最好的執行系統命令的方法就是寫個bat文件或是shell腳本。
希望本文所述對大家的Java程序設計有所幫助。相關閱讀:
老版本PHP轉義Json里的特殊字符的函數
C#實現向多線程傳參的三種方式實例分析
IIS和.NET(1.1/2.0)的安裝順序及錯誤解決方法
jQuery插件之Tocify動態節點目錄菜單生成器附源碼下載
PHP根據session與cookie用戶登錄狀態操作類的代碼
在CentOS的防火墻上開啟通行端口的方法
什么是cookie?js手動創建和存儲cookie
jQuery中removeAttr()方法用法實例
C# 創建報表過程詳解
PHP答題類應用接口實例
iOS開發中使用Picker View實現一個點菜應用的UI示例
快速掌握Node.js模塊封裝及使用
JavaScript基礎知識及常用方法總結
jQuery通用的全局遍歷方法$.each()用法實例