java 通过cmd 调用命令启动tomcat的操作

 更新时间:2020年11月25日 10:41:59   作者:南风落尽  
这篇文章主要介绍了java 通过cmd 调用命令启动tomcat的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

我们有时候为了方便,公司会做一个项目管理,便于启动和关闭我们部署在服务器上面的项目,我这里就采用了java的方式,嗯......仅限于参考......

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目录的父目录下调用除外)

打开用于启动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环境变量的这句代码放到文件的第一行。

在这里设置后,不论是通过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

以上这篇java 通过cmd 调用命令启动tomcat的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java实现策略模式使用示例

    java实现策略模式使用示例

    在使用图像处理软件处理图片后,需要选择一种格式进行保存。然而各种格式在底层实现的算法并不相同,这刚好适合策略模式。编写程序,演示如何使用策略模式与简单工厂模式组合进行开发
    2014-02-02
  • 浅谈Spring框架中@Autowired和@Resource的区别

    浅谈Spring框架中@Autowired和@Resource的区别

    最近review别人代码的时候,看到了一些@Autowired不一样的用法,觉得有些意思,下面这篇文章主要给大家介绍了关于Spring框架中@Autowired和@Resource区别的相关资料,需要的朋友可以参考下
    2022-10-10
  • Java实现读取文件夹下(包括子目录)所有文件的文件名

    Java实现读取文件夹下(包括子目录)所有文件的文件名

    这篇文章主要介绍了Java实现读取文件夹下(包括子目录)所有文件的文件名,本文把代码组织成了一个模块,可以很方便的使用,需要的朋友可以参考下
    2015-06-06
  • Java基本数据类型存储在JVM中的存储位置介绍

    Java基本数据类型存储在JVM中的存储位置介绍

    这篇文章主要介绍了Java基本数据类型存储在JVM中的存储位置,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Fluent Mybatis让你摆脱Xml文件的技巧

    Fluent Mybatis让你摆脱Xml文件的技巧

    Fluent-Mybatis类似于Mybatis-Plus是对Mybatis进一步的封装,可以只用一个实体类对象,通过代码生成器,在编译的过程中生成所需要的各类文件,简化了项目的基础构建,提高开发效率,本文重点给大家介绍Fluent Mybaits让你摆脱Xml文件的技巧,一起看看吧
    2021-08-08
  • java环境变量为什么要配置path和classpath详细解答

    java环境变量为什么要配置path和classpath详细解答

    为何配置path?为何配置classpath?当时初学java时只是关心如何做而不去关心这些问题,接下来介绍一下,感兴趣的朋友可以参考下哦
    2013-01-01
  • Springboot AOP开发教程

    Springboot AOP开发教程

    AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型,本文给大家介绍Springboot AOP开发教程,感兴趣的朋友跟随小编一起看看吧
    2024-03-03
  • 详解配置spring-boot-actuator时候遇到的一些小问题

    详解配置spring-boot-actuator时候遇到的一些小问题

    这篇文章主要介绍了详解配置spring-boot-actuator时候遇到的一些小问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 解决IntelliJ IDEA输出中文显示为问号问题的有效方法

    解决IntelliJ IDEA输出中文显示为问号问题的有效方法

    最近刚学到文件字节流这里,但输出中文时,出现了控制台输出问号的情况,所以下面这篇文章主要给大家介绍了关于如何解决IntelliJ IDEA输出中文显示为问号问题的有效方法,需要的朋友可以参考下
    2022-07-07
  • 带你了解mybatis如何实现读写分离

    带你了解mybatis如何实现读写分离

    本篇文章主要介绍了MyBatis实现数据读写分离的实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能给你带来帮助
    2021-08-08

最新评论