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的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Idea2020.2创建JavaWeb项目(部署Tomcat)方法详解

    Idea2020.2创建JavaWeb的方式略有改动,以下做个记录 1.创建项目不再是Java Enterprise了,而是先New 一个普通Java项目 2.创建项目后,选择Run->Edit Configuration->左上角加号->Tomcat Server(注意不是TomEE)->Local 3.点击Application右边的Configure,找到你放置的Tomcat的目录,点击OK 4.选择你运行项目调试项目的浏览器,我的电脑安装的是New Edge,你可以自行选择

  • 如何在IntelliJ IDEA 2018上配置Tomcat并运行第一个JavaWeb项目

    1 下载和启动Tomcat 进入官网 http://tomcat.apache.org/ ,下载最新版本的Tomcat 9 根据自己的电脑版本下载,我这里是windows 64位 下载完之后解压即可. 找到自己解压目录,打开文件夹下面的/bin目录,其中startup.bat是启动tomcat,shutdown.bat 是关闭tomcat 双击startup.bat启动tomcat后,打开 http://localhost:8080 ,若进入下面的界面则表示启动成功了. 2 在win10中为To

  • Java虚拟机使用jvisualvm工具远程监控tomcat内存

    jdk中自带了很多工具可以用于性能分析,位于jdk的bin目录下,jvisualvm工具可以以图形化的方式更加直观的监控本地以及远程的java进程的内存占用,线程状态等信息. 一.配置tomcat 在tomcat的catalina.sh文件开头加上如下配置: JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=fa

  • IDEA配置java开发环境(maven、gradle、tomcat)

    idea安装好以后,是需要简单的配置一下的,而且要分不同的开发环境,此处就不多扩展了,我们就一起来配置java的开发环境 准备: 1.jdk环境配置 ------- java环境变量请参考(linux环境下java开发环境配置 或 windows环境下java开发环境配置) 2.maven build工具(maven项目使用),下载地址,本地下载地址 3.gradle build工具(gradle项目使用),下载地址,本地下载地址 4.tomcat 8.x ,下载地址,本地下载地址 内容: 一.

  • JavaWeb开发之【Tomcat 环境配置】MyEclipse+IDEA配置教程

    MyEclipse配置 IDEA配置Tomcat 环境 IDEA:2020.2 Tomcat:apache-tomcat-9.0.38 创建Web项目 Q1:Tomcat启动输出乱码 Q2:Servlet中使用 System.out,Tomcat控制台输出乱码 一:创建Web项目 1> 创建普通项目,添加框架支持 2> 为项目配置Tomcat 3> 部署项目到Tomcat 4> 手动添加依赖包 二:Tomcat启动输出乱码 -Dfile.encoding=UTF-8 三:Servl

  • 解决Java 部署Tomcat时使用jni和jna调用DLL文件的问题

    我的前一篇博客提到,我们公司项目的restful框架中要用到底层的DLL C++库,最后经过测试验证结果选择采用JNA方法来调DLL库. 之后基础框架在IDEA中的jetty服务中调试成功,但是在部署到Tomcat上时出现了无法加载DLL库的状况,只能现学现卖了. 一. 把DLL文件放在Tomcat下的方法: 在Tomcat中加载dll,供其它接口调用: 在Tomcat目录根下新建一个文件夹,这里就叫DLL吧,<tomcat_home>/DLL: 把需要用到的dll放入新建的DLL目录下: 编

  • 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(); run

  • Java简单实现调用命令行并获取执行结果示例

    本文实例讲述了Java简单实现调用命令行并获取执行结果.分享给大家供大家参考,具体如下: import java.io.BufferedReader; import java.io.InputStreamReader; public class Command { public static void exeCmd(String commandStr) { BufferedReader br = null; try { Process p = Runtime.getRuntime().exec(

  • MAC 命令行启动tomcat的详细介绍

    MAC 命令行启动tomcat的详细介绍 一.修改授权 进入tomcat的bin目录,修改授权 ➜ bin pwd /Users/yp/Documents/workspace/apache-tomcat-7.0.68/bin ➜ bin sudo chmod 755 *.sh sudo为系统超级管理员权限. chmod 改变一个或多个文件的存取模式 755代表用户对该文件拥有读.写.执行的权限,同组的其他人员拥有执行和读的权限,没有写的权限,其它用户的权限和同组人员一样. 777代表,user,

  • IDEA Debug启动tomcat报60659端口占用错误的解决

    最近在工作中将开发工具由Eclipse转为IntelliJ IDEA,在使用过程中遇到许多问题,其中60659端口占用错误对于不熟悉IDEA的开发者来说或许会比较头痛,这里将引起该错误的原因以及解决办法作如下解释: 在启动tomcat后,左下角弹出这样一个错误:unable to open debugger port(127.0.0.1:60659) 对于初次使用IDEA的开发而言,会很纳闷,启动tomcat怎么会使用60659端口,一看tomcat 的server.xml 发现配置的端口分别为

  • 解决java执行cmd命令调用ffmpeg报错Concat error - No such filter '[0,0]'问题

    最近公司有一个公交项目,要生成报站语音,采用的是 报站前缀 + 站点名 + 报站后缀,3个MP3文件拼接的方式,拼接成一个完整的语音,且需要转码率和比特率,使用到了ffmpeg. 去网上找了一些ffmpeg相关的命令,参考: 安装命令参考 音频转码: ffmpeg -i **.mp3 -ar 8000 -ac 2 -y -b:a 32k -vol 400 **.mp3 音频拼接: //音频拼接 (1) ffmpeg -i "concat:test4.mp3|180_out.mp3" -

  • 启动tomcat时 错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099的解决办法

    一.问题描述 今天一来公司,在IntelliJ IDEA 中启动Tomcat服务器时就出现了如下图所示的错误: 错误: 代理抛出异常错误: java.rmi.server.ExportException: Port already in use: 1099; nested exception is: java.net.BindException: Address already in use: JVM_Bind 这里说的是1099端口被其它进程占用了. 二.解决办法 找出占用1099端口的进程,

  • C#中调用命令行cmd开启wifi热点的实例代码

    要点1:cmd命令行的输入命令netsh wlan set hostednetwork mode=allow ssid=用户名  key=密码netsh wlan start hostednetworknetsh waln stop hostednetworknetsh interface ip set address name="本地连接" source=dhcp 要点2:在C#中调用cmd.exe命令行 复制代码 代码如下: private void create(string s

  • Electron 调用命令行(cmd)

    因为最近的项目需求,需要在 Electron 客户端启动的时候启动 nginx 服务,所以研究了一下怎么在 Electron 调用 命令行. 因为 Electron 基于 Chromium 和 Node.js,可以直接使用 Node.js 的 API 和一些包.目前研究有以下两种方法: child_process child_process是 Node.js 的内置模块,该模块提供了衍生子进程的能力. 实现代码: const exec = require('child_process').exe

  • Spring Boot 的java -jar命令启动原理详解

    导语 在运用Spring Boot 后,我们基本上摆脱之前项目每次上线的时候把项目打成war包.当然也不排除一些奇葩的规定,必须要用war包上线,不过很多时候,我们对一些东西只是处在使用的阶段,并不会去深入的研究使用的原理是什么,这貌似也是大多数人的固定思维. 或许正是如此,总会有些没有固定思维的人会去积极的探索原理,当然这话不是说我是积极的,我其实也是只原理的搬运工.今天和大家来简单的说下Spring Boot 的项目在运行Java -jar的原理. jar包目录和jar命令启动入口 在正式开

  • Java执行cmd命令的举例与注意事项

    目录 eg1: 执行命令 eg2: 执行命令,并获取正常输出与错误输出 值得注意的是: 附java调用cmd命令实现各种操作 总结 通常 Java 执行 Windows 或者 Linux 的命令时,都是使用 Runtime.getRuntime.exec(command) 来执行的 eg1: 执行命令 public static void execCommand() { try { Runtime runtime = Runtime.getRuntime(); // 打开任务管理器,exec方法

随机推荐