bat java 启动脚本_bat执行java程序的脚本解析

使用java执行带Package的class文件

java package1.package2.className

或java -cp .  package1.package2.className

-cp将当前路径设置到classpath,windows默认情况下会搜索当前目录,有的机器有时候需要设置下-cp .,否则会找不到class

bat:

运行Java程序,脚本中的主要操作是设置classpath.

脚本的功能:

(1)设置path:可以找到java命令

(2)设置splash(启动画面)

(3)设置classpath:主程序运行时找到引用的class

(4)设置远程调试需要的相关参数

@echo off

if "%OS%"=="Windows_NT" @setlocal

if "%OS%"=="WINNT" @setlocal@title RRU HotloadPatchtoolset workpath=%~dp0set path=%path%;%workpath%\libset JAVA_HOME=%workpath%\jdk-windowsremset JAVA_OPTS=%JAVA_OPTS% -splash:%workpath%\img\welcome.gif

set JAVA_OPTS=%JAVA_OPTS% -classpath %workpath%\lib\*;

remset JAVA_OPTS=-classic -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=3999,server=y,suspend=n %JAVA_OPTS%

%JAVA_HOME%\bin\java %JAVA_OPTS% PackageName.ClassName

Analyze:

1.@echo off

(1). 作为控制批处理命令在执行时是否显示命令行自身的开关

格式:ECHO [ON|OFF]

(2). 关闭DOS命令提示符

在DOS提示符状态下键入ECHO OFF,能够关闭DOS提示符的显示使屏幕只留下光标,直至键入ECHO ON,提示符才会重新出现.

http://network.51cto.com/art/201009/225457.htm

@的用法参见:http://www.cnblogs.com/softidea/p/4229829.html

2.%OS%是个系统变量

3.setlocal

setlocal /?

开始批处理文件中环境改动的本地化操作。在执行SETLOCAL之后

所做的环境改动只限于批处理文件。要还原原先的设置,必须执

行ENDLOCAL。达到批处理文件结尾时,对于该批处理文件的每个

尚未执行的SETLOCAL 命令,都会有一个隐含的 ENDLOCAL 被执行。

eg:

@echo off

set test=testecho%test%setlocal

echo after setlocal

echo%test%set test=newContentecho%test%endlocal

echo after endlocal

echo %test%

Output:

test

aftersetlocaltest

newContent

afterendlocaltest

http://www.jb51.net/article/36043.htm

扩展:

启用变更延迟:

setlocal enabledelayedexpansion

【! !】

① 当启用变量延迟时,使用!!将变量名扩起来表示对变量值的引用。

http://baike.baidu.com/link?url=0MuBPmzZrQCNDu_-RlU4OQ4ZEfe0oIo3FcbdO-B636_38usvDXgUnjWcXYdyA2BH74453cVL6DdNxTLkSYe67K

eg:

@echo off

set a=4

set a=5&echo%a%echo ==========================

setlocalenabledelayedexpansionset a=4

set a=5&echo!a!echo%a%pause

Output:

4

==========================

5

5请按任意键继续. . .

http://www.jb51.net/article/29323.htm

4、title

title /?

设置命令提示窗口的窗口标题。

TITLE [string]

string 指定命令提示窗口的标题。

5、%~dp0

http://www.cnblogs.com/softidea/p/4229829.html

6、-splash

java -help

Usage: java [-options] class [args...](to execute a class)or java [-options] -jar jarfile [args...](to execute a jar file)-splash:show splash screen with specified image

7、-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=3999,server=y,suspend=n

-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,address=3999,suspend=n

-XDebug 启用调试。

-Xnoagent 禁用默认sun.tools.debug调试器。

-Djava.compiler=NONE 禁止 JIT 编译器的加载。

-Xrunjdwp 加载JDWP的JPDA参考执行实例。

transport 用于在调试程序和 VM 使用的进程之间通讯。

dt_socket 套接字传输。

dt_shmem 共享内存传输,仅限于 Windows。

server=y/n VM 是否需要作为调试服务器执行。

address=3999调试服务器的端口号,客户端用来连接服务器的端口号。

suspend=y/n 是否在调试客户端建立连接之后启动 VM 。

http://www.blogjava.net/yongbing/articles/221179.html

Extension part:

linux:

echo "Add the XXX's Lib path into the CLASSPATH..."CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

oldClsPath=$CLASSPATHLIPPATH=/opt/system/jakarta-tomcat-5.0.28/webapps/JavaService/WEB-INF/lib/*.jar#echo $LIPPATH

cf=.

for i in $LIPPATH

docf=$cf:"$i"

#echo $cf

done

echo"The XXX's Lib path have been added into the CLASSPATH..."

#echo $cf

export CLASSPATH=$CLASSPATH:$cfecho$CLASSPATH

#ps: if you want to run a java application, you must be copy this .bat file to the class directory.

java -cp CLASSPATH PackageName.ClassName#ok

windows:

@echo off

if "%OS%"=="Windows_NT" @setlocal

if "%OS%"=="WINNT" @setlocal

rem 启用变量延迟时:

setlocal ENABLEDELAYEDEXPANSION

ECHO. ECHO "Set CLASSPATH begin..." set CP=.

rem 当启用变量延迟时,使用!!将变量名扩起来表示对变量值的引用

for%%k in ("D:/Program Files/apache-tomcat-6.0.16/webapps/axis/WEB-INF"/lib/*.jar)do setCP=!CP!;%%kset CLASSPATH=%CLASSPATH%;%CP%ECHO "Set CLASSPATH is ok..."

ECHO "Show the CLASSPATH: "

ECHO.

ECHO%CLASSPATH%ECHO.

rem"you can add some code here."remps: if you want to run a java application, you must be copy this .bat file to the class directory.remjava -cp CLASSPATH PackageName.ClassNamerem""rem""

PAUSE

http://blog.csdn.net/faye0412/article/details/2986516

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值