java批处理

@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

你可能感兴趣的:(java)