@echo off
start javaw Demo.class
@echo off
start javaw -jar Demojar.jar
@表示运行时不显示本命令行
echo off
表示所有后面运行的命令都不显示命令行本身
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 错误解决 原因是后来较新版本的JDK(例如我使用的JDK1.6)安装完不会自动登记环境变量JAVA_HOME,JRE_HOME。像我在单位的环境,我的用户是受限制的(PowerUser),不方便设环境变量,于是我就找到了另外一个方法。 先看Tomcat的startup.bat,它调用了catalina.bat,而catalina.bat则调用了setclasspath.bat。 只要在 setclasspath.bat 的开头声明环境变量,如我的就是: rem --------------------------------------------------------------------------- rem Set CLASSPATH and Java options rem rem $Id: setclasspath.bat 505241 2007-02-09 10:22:58Z jfclere $ rem --------------------------------------------------------------------------- ********************变更为********************************* set JAVA_HOME=D:\Java\jdk1.6.0_11 set JRE_HOME=D:\Java\jre6 *********************************************************** rem Make sure prerequisite environment variables are set if not "%JAVA_HOME%" == "" goto gotJdkHome if not "%JRE_HOME%" == "" goto gotJreHome echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined echo At least one of these environment variable is needed to run this program goto exit ...... 这样在每次运行startup.bat时就注册了JAVA_HOME,JRE_HOME。控制台窗口关闭后,这两个变量也将消失,不会再占用内存。运行一下,最终提示“信息:Server startup in xxxxx ms”就大功告成了。 ---------------------------------------------------------------------------------- 解决tomcat报错一闪而过VS指定tomcate生成日志到特定文件 解决tomcat报错一闪而过 startup.bat call "%EXECUTABLE%" start %CMD_LINE_ARGS% call "%EXECUTABLE%" run %CMD_LINE_ARGS% 指定tomcate生成日志到特定文件 修改startup.bat第42行 call "%EXECUTABLE%" start %CMD_LINE_ARGS% 为 *****************************变更为*********************************** call "%EXECUTABLE%" run %CMD_LINE_ARGS% >> ..\logs\catalina.txt ********************************************************************** 然后在此启动tomcat,再次查看catalina.txt,预期的信息果然如约而至!
1、if [not] "参数" == "字符串" 待执行的命令
参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。
例:if "%1"=="a" format a:
if 的命令行帮助中关于此点的描述为:
IF [NOT] string1==string2 command
在此有以下几点需要注意:
1. 包含字符串的双引号不是语法所必须的, 而只是习惯上使用的一种"防空"字符
2. string1 未必是参数, 它也可以是环境变量, 循环变量以及其他字符串常量或变量
3. command 不是语法所必须的, string2 后跟一个空格就可以构成一个有效的命令行
2、if [not] exist [路径\]文件名 待执行的命令
如果有指定的文件,则条件成立,运行命令,否则运行下一句。
如: if exist c:\config.sys type c:\config.sys
表示如果存在c:\config.sys文件,则显示它的内容。
3、goto 批处理文件运行到这里将跳到goto所指定的标号(标号即label,标号用:后跟标准字符串来定义)处,goto语句一般与if配合使用,根据不同的条件来执行不同的命令组。
如:
goto end
:end
echo this is the end
标号用":字符串"来定义,标号所在行不被执行。
4、>> 文件重定向符
增加如下内容: 如何修改tomcat 启动配置,解决启动弹出窗口问题: 1.修改%catalia_home%\bin 下的setclasspath.bat文件,找到set _runjava这行,增加一行在后面: set _RUNJAVAW="%JRE_HOME%\bin\javaw" 2.修改 %catalia_home%\bin 下的catalina.bat替换所有的_runjava 为 _runjavaw就可以了。 3.如上面将日志文件打印到指定文件 修改startup.bat第42行 call "%EXECUTABLE%" start %CMD_LINE_ARGS% 为 call "%EXECUTABLE%" run %CMD_LINE_ARGS% >> ..\logs\catalina.txt 存在问题:还是弹出个dos窗口,不过关闭该窗口并不会关闭tomcate,服务还在运行,不知道如何解决
同时启动jar和tomcate
@echo off start D:\java\jdk1.6.0_14\bin\javaw -jar "D:\java\hb30pc_server.jar" call D:\java\apache-tomcat-6.0.33\bin\startup.bat
同时关闭:
@echo off call D:\java\apache-tomcat-6.0.33\bin\shutdown.bat TASKKILL /F /IM javaw.exe goto end :end
- 删除任务管理器中名字为hr*.tmp的进程
taskkill /F /FI "IMAGENAME eq hr*.tmp" 杀毒用 ^_^
//另TMD服务器上面端口8080未开放,老子的服务起了只能在本机localhost访问,需要将该端口开放
netsh firewall add portopening protocol = TCP port = 80 name = "Open80" mode = Enable