如何在java中使用cmd命令启动tomcat
创始人
2024-11-20 16:21:37
0次

具体方法如下:

public static void main(String args[]) throws IOException {
    String exec = "C:/software/apache-tomcat-8.5.24/bin/startup.bat";
    Runtime runtime = Runtime.getRuntime();
    runtime.exec(exec);
  }

如上所述,如果我们执行这段代码,那么我们的tomcat是启动不了的,我们用cmd试一下,请看下面,会出现错误信息,(在bin目录的父目录下调用除外)

如何在java中使用cmd命令启动tomcat

打开用于启动Tomcat的批处理文件startup.bat,首先判断CATALINA_HOME环境变量是否为空,如果为空,就将当前目录设为CATALINA_HOME的值。

接着判断当前目录下是否存在bin\catalina.bat,如果文件不存在,将当前目录的父目录设为CATALINA_HOME的值。

根据Tomcat安装目录的层次结构,最后CATALINA_HOME的值被设为Tomcat的安装目录。如果环境变量CATALINA_HOME已经存在,则通过这个环境变量调用bin目录下的“catalina.bat start”命令。

于是了解到两个信息,一是Tomcat启动时,需要查找CATALINA_HOME这个环境变量,如果在Tomcat的bin目录下调用startup.bat,Tomcat会自动并正确设置CATALINA_HOME;二是执行startup.bat命令,实际上执行的是“catalina.bat start”命令

如果要想在任意目录下都能启动Tomcat,就需要设置CATALINA_HOME环境变量,你可以将CATALINA_HOME添加到Windows 系统的环境变量中,其值就是Tomcat的安装目录。

添加CATALINA_HOME环境变量的过程和前述添加JAVA_HOME环境变量的过程是一样的。如果你不想在系统的环境变量中添加,也可以直接在startup.bat文件中进行设置

set CATALINA_HOME=C:\software\apache-tomcat-8.5.24

我这里采用将 CATALINA_HOME 添加到 startup.bat 文件中,shutdown.bat 同理。如果找不准位置,可以将设置CATALINA_HOME环境变量的这句代码放到文件的第一行。

如何在java中使用cmd命令启动tomcat

在这里设置后,不论是通过cmd在其它目录下启动还是通过java代码启动tomcat都将无比丝滑......

注意:如果将该java程序打成war包放在tomcat下运行,则无法通过该程序启动其他tomcat,原因暂时未知......当然,可将其打包成jar包通过cmd运行程序,直接裸奔,则程序可成功运行,打开其他的tomcat......

补充知识:使用java命令执行bat文件(重启本地指定位置的Tomcat)

使用下面的代码执行指定位置的bat文件

public static void main(String[] args) {
     Runtime rt = Runtime.getRuntime(); //返回当前应用程序的Runtime对象
     Process ps=null;//制子进程的执行或获取该子进程的信息
     try {
      ps=rt.exec("cmd.exe /c start C:\\Users\\qiang\\Desktop\\restartTomct.bat");//这里的C:\\Users\\qiang\\Desktop\\restartTomct.bat 换成你自己的bat文件的绝对路径
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
     int i=ps.exitValue();
     if(i == 0){//执行成功
       System.out.println("执行完成");
     }else{//执行失败
       System.out.println("执行失败");
     }
     ps=null;
  }

=================================================
bat文件的名称为 restartTomct.bat
=================================================

@echo log location

@echo 下面的c代表进入的是盘符c 下 ,也就是Tomcat所在盘符的位置,(需要修改为自己的盘符)

c:

@echo 进入Tomcat的bin目录 (需要修改为自己的Tomcat的bin目录的位置)

cd C:\Users\qiang\Desktop\apache-tomcat-7.0.53\apache-tomcat-7.0.53\bin\
call shutdown.bat
@echo wait for  10 sec........
ping -n 10 127.0.0.1

call startup.bat

echo ----------- >> C:\Users\qiang\Desktop\apache-tomcat-7.0.53\tomcat_restart.log
exit

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...