zl程序教程

您现在的位置是:首页 >  后端

当前栏目

java调用shell命令并获取执行结果

JAVA执行命令shell 获取 调用 结果
2023-09-14 09:16:09 时间

java调用shell命令并获取执行结果


使用到Process和Runtime两个类,返回值通过Process类的getInputStream()方法获取

[plain]  view plain  copy
  1. package ark;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.IOException;  
  5. import java.io.InputStreamReader;  
  6. import java.util.ArrayList;  
  7. import java.util.List;  
  8.   
  9. public class ReadCmdLine {  
  10.     public static void main(String args[]) {  
  11.         Process process = null;  
  12.         List<String> processList = new ArrayList<String>();  
  13.         try {  
  14.             process = Runtime.getRuntime().exec("ps -aux");  
  15.             BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));  
  16.             String line = "";  
  17.             while ((line = input.readLine()) != null) {  
  18.                 processList.add(line);  
  19.             }  
  20.             input.close();  
  21.         } catch (IOException e) {  
  22.             e.printStackTrace();  
  23.         }  
  24.   
  25.         for (String line : processList) {  
  26.             System.out.println(line);  
  27.         }  
  28.     }  
  29. }  

调用shell脚本,判断是否正常执行,如果正常结束,Process的waitFor()方法返回0

[java]  view plain  copy
  1. public static void callShell(String shellString) {  
  2.     try {  
  3.         Process process = Runtime.getRuntime().exec(shellString);  
  4.         int exitValue = process.waitFor();  
  5.         if (0 != exitValue) {  
  6.             log.error("call shell failed. error code is :" + exitValue);  
  7.         }  
  8.     } catch (Throwable e) {  
  9.         log.error("call shell failed. " + e);  
  10.     }  
  11. }