以批处理为例,shell脚本类似。
使用Runtime:
try { Process p = Runtime.getRuntime().exec("D:\\test.bat abc");//假设批处理文件需要传递参数abc } catch (IOException e) { e.printStackTrace(); }
通过以下代码,可以获取命令行输出。
try { Process p = Runtime.getRuntime().exec("D:\\test.bat abc"); p.waitFor(); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); String msg = null; while((msg = br.readLine()) != null){ System.out.println(msg); } p.destroy(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
使用ProcessBuilder:
try { ProcessBuilder pb = new ProcessBuilder("D:\\test.bat", "abc"); //假设批处理文件需要传递参数abc Process p = pb.start(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
通过以下代码,可以获取命令行输出。
try { ProcessBuilder pb = new ProcessBuilder("D:\\test.bat", "abc"); Process p = pb.start(); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); String msg = null; while((msg = br.readLine()) != null){ System.out.println(msg); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }