目录

需求分析

setclasspath.bat


需求分析

1、对于解压版的 Tomcat ,一般采用如下两种方式启动,可以参考《Tomcat 下载安装,启动,停止,注册服务,开机自启》:

1)直接运行 %Tomcat_HOME%/bin/startup.bat 启动;

2)使用 %Tomcat_HOME%/bin/service.bat 注册 windows 服务启动。

2、有一次项目中需要调用第三方的可执行 .jar 程序,在 IDEA 中编码运行时完全正常,部署后到 Tomcat 后,直接运行 %Tomcat_HOME%/bin/startup.bat 启动 Tomcat,访问调用也正常。

3、但是将 Tomcat 注册为服务后,启动服务正常,Tomcat 启动正常,浏览器可以访问,但却始终无法调用第三方的可执行 .jar 程序。

4、代码如下所示,换成  Runtime.getRuntime().exec("xxxx") 也是一样,都无法调用,也不报错,程序也不会卡死。看了网上也有一些人遇到过类似问题,按照它们的介绍,并未尝试成功。于是暂时放弃了,希望路过的少侠在评论区不吝赐教。

...
List<String> paramList = new ArrayList<String>();
paramList.add("cmd");
paramList.add("/c");
paramList.add("start");
paramList.add("E:\\wmx\\logs\\softdog.jar");
paramList.add(new Date().toString());
paramList.add("E:\\wmx\\logs");
ProcessBuilder processBuilder = new ProcessBuilder(paramList);
processBuilder.start();
...

setclasspath.bat

1、于是想了一个折中的办法,就是在运行 %Tomcat_HOME%/bin/startup.bat 启动的基础上,有没有办法隐藏弹出的 Tomcat 黑框呢?

2、 Windows 上 tomcat 启动调用文件顺序:startup.bat->catalia.bat->setclasspath.bat。其中  setclasspath.bat 用于设置 JAVA_HOME,JRE_HOME,java.exe 和 jdb.exe 目录。

3、在 setclasspath.bat 文件第 75-80 行有如下内容,指定打开 Tomcat 的是 java.exe 程序,已经知道 Java 的 java.exe 命令打开 .jar 程序时,会在控制台打印程序中所有的输出语句的,如 System.out.println("Hello World"); 而 Java 的 javaw.exe 则不会打印信息。

rem Don't override _RUNJAVA if the user has set it previously
if not "%_RUNJAVA%" == "" goto gotRunJava
rem Set standard command for invoking Java.
rem Also note the quoting as JRE_HOME may contain spaces.
set _RUNJAVA="%JRE_HOME%\bin\java.exe"
:gotRunJava

4、隐藏弹出的 Tomcat 黑框的解决办法是将 java.exe 改为 javaw.exe 即可:set _RUNJAVA="%JRE_HOME%\bin\javaw.exe"

5、此时运行 %Tomcat_HOME%/bin/startup.bat,不会再弹出 Tomcat 黑框,在任务管理器中看到的也是 javaw.exe,而不是以前的 java.exe 了。

6、这样相当于后台启动 Tomcat 了,没有再弹框,想要关闭 Tomcat 时,仍然是执行 shutdown.bat 即可,或者直接杀进程,此时如果再将 startup.bat 创建快捷方式放在系统的启动文件中,则 Tomcat 照样也可以开机自启了,而且还不会弹框,

Tomcat startup.bat 后台运行,不再弹出 Dos 黑框相关推荐

  1. win10开机有东西一闪而过_Win10 开机以后不一会儿会弹出一个黑框,usoclient.exe 一闪而过。这东西对电脑有...

    点击查看Win10 开机以后不一会儿会弹出一个黑框,usoclient.exe 一闪而过.这东西对电脑有具体信息 答:在Win10系统开机后会出现一个文件名为C:\WINDOWS/system32/u ...

  2. windows 运行bat文件,不弹出DOS界面

    1.用记事本新建一个文件,扩展名为vbe.内容输入如下: set ws=wscript.createobject("wscript.shell") ws.run "NoU ...

  3. ECSHOP 如何删除商品列表页 购买弹出 商品属性框后面的价格

    场景如图: 商品列表页 购买弹出 商品属性框是由js文件控制的. 打开JS文件js/common.js 问题一.弹出后属性多时,看不到[购买][取消]按钮 搜索代码: newDiv.style.hei ...

  4. java bat 运行 jar文件_运行bat文件启动java的jar且不弹出DOS窗口,后台运行java的jar包...

    本文主要是将java的jar包启动的cmd命令添加到bat文件来执行,且不弹出DOS窗口,也就是后台运行java的jar包. 这里以win10为例 1.新建 一个txt文件,在文件添加以下内容.其中E ...

  5. bat文件运行java的jar包不弹出dos窗口,开机自启jar包

    后台运行不弹dos窗口 %1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,FALS ...

  6. 计算机窗口弹不出来桌面怎么弄,怎么在电脑中设置不再弹出程序的广告窗口

    怎么在电脑中设置不再弹出程序的广告窗口 有的小伙伴在使用电脑过程中,总是会收到各种软件程序的弹出广告窗口,觉得特别打扰电脑的使用,因此想要设置不再弹出广告窗口,但是却不知道如何设置,那么小编就来为大家 ...

  7. Tomcat startup.bat 打开闪退,添加pause后不报错但无法响应,以及 -Djava.endorsed.dirs=Tomcat\endorsed is not supported问题

    Tomcat startup.bat 打开问题解决 startup.bat闪退 点击startup.bat一直闪退的话,要先让它在关闭前停下来,我们才好查看它的错误报告 首先打开Tomcat文件夹,打 ...

  8. 解决IDEA GIT密码输入错误后,报Authentication failed ... 不再弹出输入框,提交更新失败

    IDEA GIT密码输入错误后,不再弹出输入框,提交更新失败,此时可以到windows凭据中去修改. 方法一: 开始菜单 >> 点击用户头像 >> 在左侧选择"管理你 ...

  9. 如何让Win7不再弹出升级Win10的提醒窗口

    Windows7大限将至,距2020年1月14日只有两个多月的时间了,所以微软又开始频繁地向Win7用户推送升级Win10的弹窗提示了.如果你心里有主意,并不想现在升级Windows10,那么这个善意 ...

  10. Qt运行程序弹出异常窗口解释

    源于群友的提问.关于程序运行时弹出崩溃窗口提示的问题. 如图:   上图为访问野指针导致程序崩溃. The inferior stopped because it triggered an excep ...

最新文章

  1. OSPF的RID和DR/BDR的选举
  2. 利用SQl对数据库实行数据拆分与组合
  3. BZOJ 3884 上帝与集合的正确用法 (欧拉定理)
  4. Spark广播变量实现原理及基础编程
  5. rabbitMQ 实战 高效部署分布式消息队列 读书笔记
  6. Django(part27)--聚合查询
  7. 【转】注册Azure AD 2.0 应用程序
  8. Java获取并Kill系统进程
  9. tcpprep man 手册翻译
  10. c语言程序设计教程 郭浩志,C语言程序设计教程答案杨路明郭浩志.doc
  11. jqprint 打印表格宽度_只要30秒!快速解决Excel表格打印问题
  12. 新版淘宝宽屏轮播代码带缩略图
  13. maximo跟java_Maximo7.5远程调用maximo的手动输入节点工作流
  14. Linux内核版本主要有,Linux内核版本号主要有几部分组成? 各代表什么含义?
  15. CSDN技术主题月:实战解读移动信息安全技术
  16. python解释型语言的说明
  17. 什么是计算机用英语解释,计算机词汇英语解释
  18. 安装 SQL Sever 2000至最后步骤报错“安装程序配置服务器失败。 参考服务器错误日志和 C: \Windows\sqltsp.log 了解更多信息”
  19. S60智能手机格式化
  20. 如何用自己的电脑连接单位的以太网

热门文章

  1. error: ignoring return value of 编译错误处理
  2. S3VM和TSVM的不同
  3. some any oracle,Oracle Any/Some运算符
  4. python中怎样划分时间段_如何划分重叠的日期时间间隔(组织模式时钟时间)?...
  5. epoch,batch_size,iteration,batch_idx什么意思
  6. Android入门笔记04
  7. python只想调用函数不想执行.py
  8. Pytorch遍历DataLoader时报错BrokenPipeError: [Errno 32] Broken pipe
  9. 递归学习简单的小例子之hanoi塔问题
  10. Qt-textEdit 滚顶条设置只读模式