java代码实现执行linux命令并获取返回结果
public static String runLinuxCmd(String command) throws IOException{ if(System.getProperty("os.name").toLowerCase().contains("windows")){ logger.info("当前操作系统为windows,返回空"); return ""; } Runtime runtime=Runtime.getRuntime(); InputStreamReader inputStreamReader=null; BufferedReader bufferedReader=null; OutputStreamWriter outputStreamWriter=null; BufferedWriter bufferedWriter=null; PrintWriter printWriter=null; Process process=null; String result=""; try { process=runtime.exec("/bin/bash",null,null); inputStreamReader=new InputStreamReader(process.getInputStream()); bufferedReader=new BufferedReader(inputStreamReader); outputStreamWriter=new OutputStreamWriter(process.getOutputStream()); bufferedWriter=new BufferedWriter(outputStreamWriter); printWriter=new PrintWriter(bufferedWriter,true); logger.info("执行命令: {}",command); printWriter.println(command); printWriter.println("exit"); String tempResult=""; while ((tempResult=bufferedReader.readLine())!=null){ result=tempResult; } logger.info("返回结果:"+result); }catch (IOException e){ logger.error("",e); }finally { if(process!=null){ try { process.waitFor(); }catch (InterruptedException e){ logger.error("",e); } } if(printWriter!=null) printWriter.close(); if(bufferedWriter!=null) bufferedWriter.close(); if(printWriter!=null) printWriter.close(); if(bufferedReader!=null) bufferedReader.close(); if(inputStreamReader!=null) inputStreamReader.close(); if(process!=null){ process.destroy(); } return result; } }