使用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 Hotload Patch tool
set workpath=%~dp0
set path=%path%;%workpath%\lib
set JAVA_HOME=%workpath%\jdk-windows
rem set JAVA_OPTS=%JAVA_OPTS% -splash:%workpath%\img\welcome.gif
set JAVA_OPTS=%JAVA_OPTS% -classpath %workpath%\lib\*;
rem set 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=test
echo %test%
setlocal
echo after setlocal
echo %test%
set test=newContent
echo %test%
endlocal
echo after endlocal
echo %test%

Output:

test
after setlocal
test
newContent
after endlocal
test

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 ==========================
setlocal enabledelayedexpansion
set 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:<imagepath>
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=$CLASSPATH
LIPPATH=/opt/system/jakarta-tomcat-5.0./webapps/JavaService/WEB-INF/lib/*.jar
#echo $LIPPATH
cf=.
for i in $LIPPATH
do
cf=$cf:"$i"
#echo $cf
done
echo "The XXX's Lib path have been added into the CLASSPATH..."
#echo $cf
export CLASSPATH=$CLASSPATH:$cf
echo $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 set CP=!CP!;%%k
set CLASSPATH=%CLASSPATH%;%CP%
ECHO "Set CLASSPATH is ok..."
ECHO "Show the CLASSPATH: "
ECHO.
ECHO %CLASSPATH%
ECHO.
rem "you can add some code here."
rem ps: if you want to run a java application, you must be copy this .bat file to the class directory.
rem java -cp CLASSPATH PackageName.ClassName
rem ""
rem ""
PAUSE

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

bat执行java程序的脚本解析的更多相关文章

  1. crontab中执行java程序的脚本

    测试场景说明(操作系统:centos7): 有一个bash脚本,脚本内容是执行某个java程序,该脚本为 /data/project1/start.sh crontab -e,添加了以下任务: * * ...

  2. bat执行java程序 good

    start.bat set MY_HOME=%~dp0  set JMS_BINDING_PATH=%MY_HOME%..\binds set JAVA_HOME=C:\Program Files\J ...

  3. sh脚本执行Java程序

    1.不引用Jar包或者资源文件夹 最简单的程序Hello World. 首先创建Hello.java public class Hello { public static void main(Stri ...

  4. windows计划任务启动bat执行java文件

    系统:win7 环境:需要配置好jdk的环境变量 需求:每次开机,用bat批处理执行将一个位于D:\workspace\console目录底下的console.txt重命名的java文件 拿到需求,我 ...

  5. CentOS下crontab执行java程序

    阿里云CentOS收不到邮件 在crontab里配置执行脚本,脚本用来执行java程序,死活不执行.单独执行脚本可以运行. 查看crontab的日志文件,/var/log/cron,发现没有收到cro ...

  6. 不错的linux下通用的java程序启动脚本

    不错的linux下通用的java程序启动脚本(转载) 虽然写起动shell的频率非常不高...但是每次要写都要对付一大堆的jar文件路径,新加jar包也必须要修改起动shell. 在网上找到一个挺好的 ...

  7. Linux中crontab无法执行java程序的问题

    Linux中crontab无法执行java程序的问题 jdk环境变量配置问题:可以用全路径来解决: 竟然是kill -9之后,后面的脚本都不运行,这个还没有找到原因啊: 即便是系统级别的 ls 命令, ...

  8. 如何用javac 和java 编译运行整个Java工程 (转载)【转】在Linux下编译与执行Java程序

    如何用javac 和java 编译运行整个Java工程 (转载)  http://blog.csdn.net/huagong_adu/article/details/6929817 [转]在Linux ...

  9. JVM执行Java程序时内存的划分

    Java虚拟机在执行Java程序过程中会把它所管理的内存区域划分为若干个不同的数据区域. Java虚拟机所管理的内存包括以下几个运行时区域: 1.程序计数器(Program Couter Regist ...

随机推荐

  1. What’s New in Python 2.7 — Python 3.4.0b2 documentation

    What's New in Python 2.7 - Python 3.4.0b2 documentation What's New in Python 2.7¶

  2. XML(三)

     使用 XSLT 显示 XML -------------------------------------------------------------------------------- 通 ...

  3. 2008r2 显示桌面图标

  4. JMS开源比较

    Java开源JMS消息中间件 mom4j mom4j是一个完全实现JMS1.1规范的消息中间件并且向下兼容JMS1.0与1.02.它提供了自己的消息处理存储使它独立于关系数据与语言,所以它的客户端可以 ...

  5. 刘汝佳黑书 pku等oj题目

    原文地址:刘汝佳黑书 pku等oj题目[转]作者:小博博Mr 一.动态规划参考资料:刘汝佳<算法艺术与信息学竞赛><算法导论> 推荐题目:http://acm.pku.edu. ...

  6. ZOJ 3829 Known Notation 乱搞

    乱搞: 1.数字的个数要比*的个数多一个,假设数字不足须要先把数字补满 2.最优的结构应该是数字都在左边,*都在右边 3.从左往右扫一遍,遇到数字+1,遇到*-1,假设当前值<1则把这个*和最后 ...

  7. oracle逻辑导入小错:提示无法创建日志提示

    ***********************************************声明*************************************************** ...

  8. 前端project师,确定你的目标吧!无能的人才管他叫命运

    导语: 你为自己定过一个不靠谱的目标,是20年前的事了吧. 长大你想干什么?你的回答是什么?现在实现了吗? 如今,你每天都坐在同一个格子间的同一个电脑前,会不会感到每天都像是在复印,感到前途是模糊的, ...

  9. mysql学习之中的一个:mysql安装

    我用的时mac系统,本来想在mac系统上装一个,可是发现mac系统始终无法用password登入到本机server,很奇怪的问题(在stackflow上看了些回复,也没有找到原因),最后仅仅好装到虚拟 ...

  10. Swift - 初始化方法返回nil表示初始化失败

    自Swift1.1开始,初始化init方法便有返回nil的能力.我们可以在init声明的时候在其后面加上一个 ? 或者 ! 来表示初始化失败时可能返回nil. 比如,给Int类添加一个将字符串初始化成 ...