java 调用cmd/sh文件
最近在做产品遇到java在windows下面调用bat脚本和在linux下调用shell脚本,现在记录一下以便以后查阅。
首先贴出RuntimeUtils工具类,此类简化了 Runtime中exec的调用
package com.zohan.ww.system;import org.junit.Test;import com.zohan.www.util.RuntimeUtils;/** * @ClassName: TestRuntimeUtils * @Description: RuntimeUtils测试 * @author zohan inlw@sina.com * @date 2012-10-30 下午9:02:48 * */public class TestRuntimeUtils {/** * * @Title: testStartTomcat * @Description: windows 下启动tomcat * @throws Exception * @return void 返回类型 * @throws */@Testpublic void testStartTomcat() throws Exception {String command = "cmd.exe /c startup.bat";String dir = "D:\\ehcache\\apache-tomcat-6.0.35\\bin";Process process = RuntimeUtils.exec(command, null, dir);int i = process.waitFor();System.exit(i);}/** * * @Title: testStopTomcat * @Description: windows 下关闭tomcat * @throws Exception * 设定文件 * @return void 返回类型 * @throws */@Testpublic void testStopTomcat() throws Exception {String command = "cmd.exe /c start shutdown.bat";String dir = "D:\\ehcache\\apache-tomcat-6.0.35\\bin";Process process = RuntimeUtils.exec(command, null, dir);int i = process.waitFor();System.exit(i);}/** * * @Title: testStartWas* @Description: linux 下 启动was服务* @throws Exception 设定文件* @return void 返回类型* @throws */@Testpublic void testStartWas() throws Exception{String command = "sh startServer.sh server1";String dir = "/usr/IBM/WebSphere/AppServer/profiles/AppSrv01/bin";Process process = RuntimeUtils.exec(command, null, dir);int i = process.waitFor();System.exit(i);}/** * * @Title: testStopWas* @Description: linux 下停止was服务* @throws Exception 设定文件* @return void 返回类型* @throws */@Testpublic void testStopWas()throws Exception{String command = "sh stopServer.sh server1 -username admin password";String dir = "/usr/IBM/WebSphere/AppServer/profiles/AppSrv01/bin";Process process = RuntimeUtils.exec(command, null, dir);int i = process.waitFor();System.exit(i);}}??注意事项:在此过程中环境为null,会继承当前线程的环境变量。
?
?