bat执行java程序 good

时间:2023-03-10 02:56:23
bat执行java程序  good

bat执行java程序  good

start.bat

set MY_HOME=%~dp0 
set JMS_BINDING_PATH=%MY_HOME%..\binds
set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_08\

set path=%path%;%JAVA_HOME%bin;
set CLASSPATH=.;%JAVA_HOME%lib\tools.jar;%JAVA_HOME%lib\dt.jar;%MY_HOME%..\bomc-sa-tdagent.jar;%MY_HOME%..\commonlib\*; 
java -Xms128M -Xmx512M  -Dprogram.name=bomc-sa-tdtpagent -Dfile.encoding=GBK -Duser.timezone=GMT+8 -jar ../test.jar agent>td.log

set CP=./;lib/ant.jar;lib/commons-logging-1.0.4.jar  
%JAVA_HOME%\bin\java -Xms128m -Xmx256m -Dfile.encoding=GB18030 -classpath %CP% com.xxx.xxxx.HelloWorld [args]
pause CP中是程序需要的jar包 [args]是main函数需要的参数

set MY_HOME=%~dp0
set CLASSPATH=%MY_HOME%xxx.jar;%MY_HOME%..\lib\*;

set PATH="D:\Program Files\MyEclipse 6.5\jre\bin"

set JAVA_OPTS=-Xms128m -Xmx256m

java %JAVA_OPTS% com.java.Test

http://huangzhir.iteye.com/blog/1883209

compileAndRun.bat:

@echo off
cd /d %~dp0
echo 当前路径:%cd%
echo 编译中
javac -encoding utf-8 -d ./bin/ ./src/org/ubird/*.java
echo 清理资源文件
rmdir /S /Q .\bin\res
echo 创建资源文件夹
mkdir .\bin\res
echo 复制资源文件
copy /y src\res\ bin\res
echo 切换执行路径:
cd bin
echo %cd%
echo 开始运行
java org.ubird.TestSwingWorker
pause

补充(DOS相关):

a.bat内容为
cd /d %~dp0

在这里

cd /d %~dp0的意思就是cd /d d:\qq

%0代表批处理本身 d:\qq\a.bat

~dp是变量扩充

d既是扩充到分区号 d:

p就是扩充到路径 \qq

dp就是扩充到分区号路径 d:\qq

扩充变量语法详解:

:: ~I - 删除任何引号("),扩充 %I

:: %~fI - 将 %I 扩充到一个完全合格的路径名

:: %~dI - 仅将 %I 扩充到一个驱动器号

:: %~pI - 仅将 %I 扩充到一个路径

:: %~nI - 仅将 %I 扩充到一个文件名

:: %~xI - 仅将 %I 扩充到一个文件扩展名

:: %~sI - 扩充的路径只含有短名

:: %~aI - 将 %I 扩充到文件的文件属性

:: %~tI - 将 %I 扩充到文件的日期/时间

:: %~zI - 将 %I 扩充到文件的大小

:: %~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充到找到的第一个完全合格的名称。如果环境变量名未被定义,或者没有找到文件,此组合键会扩充到空字符串

:: 可以组合修饰符来得到多重结果:

:: %~dpI - 仅将 %I 扩充到一个驱动器号和路径

:: %~nxI - 仅将 %I 扩充到一个文件名和扩展名

:: %~fsI - 仅将 %I 扩充到一个带有短名的完整路径名

:: %~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充

:: 到找到的第一个驱动器号和路径。

:: %~ftzaI - 将 %I 扩充到类似输出线路的 DIR

%~dp0 VS %cd%

    %cd% is available either to a batch file or at the command prompt and expands to the drive letter and path of the current directory (which can change e.g. by using the CD command)

%~dp0 is only available within a batch file and expands to the drive letter and path in which that batch file is located (which cannot change). It is obtained from %0 which is the batch file's name.

使用范围:
%cd%:批处理脚本(bat脚本)、命令行窗口
%~dp0:批处理脚本(bat脚本)

代表的值是否会变化:
%cd%:会。因为代表的是当前目录
%~dp0:不会。因为代表的是脚本文件在磁盘的位置

An experiment like the following shows the difference

Here is D:\dirshow.bat:

Code:

@echo off

echo this is %%cd%%  %cd%

echo this is %%~dp0 %~dp0

Run it from C:\ and this is what you see

Code:

C:\>D:\dirshow.bat

this is %cd%  C:\

this is %~dp0 D:\

http://www.cnblogs.com/dongzhiquan/archive/2010/09/12/1994555.html

在DOS中,有两个环境变量可以跟当前路径有关,一个是%cd%, 一个是%~dp0。

这两个变量的用法和代表的内容是不同的。

1. %cd% 可以用在批处理文件中,也可以用在命令行中;

执行结果:

驱动器盘符:+当前目录,

如在dos窗口中进入c:\dir目录下面,输入:echo %cd% ,

则显示为:c:\dir 。

%cd%的内容是可以被改变的,其内容为命令的执行路径或批处理文件的执行路径。

2.%~dp0只可以用在批处理文件中,它是由它所在的批处理文件的目录位置决定的,

是批处理文件所在的盘符:+路径。在执行这个批处理文件的过程中,

它展开后的内容是不可以改变的。

bat文件内容:

@echo off
echo this is %%cd%% %cd%
echo this is %%~dp0 %~dp0

bat执行java程序  good

相关文章