81,091
社区成员
发帖
与我相关
我的任务
分享
如何用java程序控制Tomcat重启 如何用java程序控制Tomcat重启因为涉及到了用上行控制Tomcat的重启.所以就想到如何用java代码来控制Tomcat重启了.
因为平时Tomcat在windows上的重启一般都是用vbs或者是.bat脚本来写的.只要做能做到用JAVA调用这两种脚本就可以了.
在JAVA的API里面.可以用代码控制本地的可执行文件而不能直接调用脚本.因此需要把脚本转换成可执行文件可以下载visualVBS来把vbs脚本转换成.exe.bat转换的脚本更多.网上搜索一下就能找到了.
之后在线程里面直接调用JAVA API里面的执行代码就可以做到重启TOMCAT了.DEMO:
首先是重启脚本,写成.vbs
set WshShell=WScript.CreateObject("WScript.Shell")WshShell.Run("net stop tomcat5")WScript.Sleep(10000)WshShell.Run("net start tomcat5")
然后用visualVBS转换成.exe文件然后做一个类,重启Tomcat专用
package com.uf.tool.util;
/******* Tomcat重启类* @author jiangqinghua**/
public class TomcatReset {
private String tomcat="";
public TomcatReset() {
Config config=Config.getConfig();
tomcat=config.getProperties("tomcat");
}
public void tomcatRun(){
try {
System.out.println("the command is:" tomcat);
Process child = Runtime.getRuntime().exec(tomcat);
} catch (Exception e) {
e.printStackTrace();
} }}
其中tomcat就是其存放的绝对路径,因为可能会变,就写在配置文件里面
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("C:\\Tomcat\\bin\\shutdown.bat");
runtime.gc();
BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = null, result = "";
while ((line = input.readLine()) != null) result += line + "\r\n"; input.close();
System.out.println(result);
process = runtime.exec("C:\\Tomcat\\bin\\shutdown.bat");
希望给楼主能有些帮助
http://hi.baidu.com/rungump/item/fdaa50e84711daf5e0a5d491 public static void main(String[] args) {
Runtime runtime = Runtime.getRuntime();
try {
Process process = runtime.exec("cmd /c start C:\\apache-tomcat-6.0.35\\bin\\startup.bat");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
这样应该没有问题吧。