以批处理为例,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();
}