小工具——.bat 运行java 的jar文件

来源:互联网 发布:centos关闭防火墙 编辑:程序博客网 时间:2024/04/30 03:32

在开发过程中,往往我们会写一些代码,作为一个小工具处理一些常见的问题,如果每次都是在编译器上执行,对个人而言可能还无可厚非,但是对于一些测试人员,或者其他人员,可能运行这些代码就要困难多了,所以,我们可以制作一个批处理文件,直接运行带有main函数的java  jar文件,以此嫣然成为一个小工具。

主要思路:

1.把含有java的main函数的代码导出成为jar文件

①右击要导成jar 文件的java类,点击Expore,载弹出的对话框选择java 下的jar file ,



设置JAR file ,是指把导出的jar存放在那个位置



然后继续Next, 直到如下JAR Manifest Spectification 界面,这个是关键,取决于你导出的jar 能不能运行,

这个是设置你的main函数的,在 main class 处,选择你导出的jar文件的main函数然后finish 即可





至此,你的jar文件则导出成功,下面开始写批处理文件(.bat)

@echo off  

java -classpath; ./lib/xxx.jar;./lib/log4j-1.2.15.jar; com.packageName.ClassName

有些时候也会看到如下形式,其实一个意思

@echo off 

java -cp . ; ./lib/xxx.jar;./lib/log4j-1.2.15.jar; com.packageName.ClassName 的形式,

对于一些测试人员,他们可能本身没有设置java的环境变量,这个时候,我们直接写成


C:\Java\jdk1.6.0_43\bin   -cp 的形式


如果是直接默认安装jdk 在program   files文件夹下(注意program和files 中间是有空格的),这个时候bat文件是不识别的带有空格的路径的,我们可以如下解决:

  " C:/program  files/Java/jdk1.6.0_43/bin/java"这种写法就可以了,

" C:/program~/Java/jdk1.6.0_43/bin/java" 这种写法也行


然后就可以执行命令运行bat文件进行测试了!



下面列举bat 的几种常见写法:

a 利用目标机的jre(第7步可省)   (http://blog.csdn.net/wk_ri/article/details/5302258)

@echo off
cd ..
set APP_HOME=%cd%

cd bin
start "" "%JAVA_HOME%/bin/javaw.exe" -classpath "%APP_HOME%/lib/DMManager.jar" -Djava.ext.dirs="%JAVA_HOME%/jre/lib/ext";"%APP_HOME%/lib/other" -Xms256m -Xmx512m my.package.name.Main

 

b 利用自身的jre(第7步不能省)

@echo off
cd ..
set APP_HOME=%cd%

set JAVA_HOME=%APP_HOME%/jdk

cd bin
start "" "%JAVA_HOME%/bin/javaw.exe" -classpath "%APP_HOME%/lib/DMManager.jar" -Djava.ext.dirs="%JAVA_HOME%/jre/lib/ext";"%APP_HOME%/lib/other" -Xms256m -Xmx512m my.package.name.Main


c:

@echo offset path=%cd%\jre\binstart %path%\javaw -jar **.jar


d:   ( http://blog.sina.com.cn/s/blog_484d87770100osl8.html)

start.bat源码!
 
@echo off
setORIGCLASSPATH=%CLASSPATH%                         //保存原有classpath
if not "%JAVA_HOME%" == "" gotogotJavaHome                //判断是否本机有JAVA_HOME
echo You must set JAVA_HOME to point to your Java SDK installdirectory
goto cleanup
:gotJavaHome
 
setBASE_DIR="%JAVA_HOME%\lib\tools.jar"          //在逐一加入本软件需要的Java支持环境包
set BASE_DIR=%BASE_DIR%;.\lib\cyim.jar
set BASE_DIR=%BASE_DIR%;.\lib\commons-httpclient-2.0.2.jar
set BASE_DIR=%BASE_DIR%;.\lib\commons-codec-1.1.jar
set BASE_DIR=%BASE_DIR%;.\lib\commons-logging-1.0.4.jar
set BASE_DIR=%BASE_DIR%;.\lib\dom4j-1.6.1.jar
 
REM set CLASSPATH=%BASE_DIR%;%CLASSPATH%
 
echo %BASE_DIR%       //屏幕打印自己定义的classpath

java -classpath %BASE_DIR%nau.httpclient.gui.CyimClient %1 %2 %3 %4%5    //运行
 
REM @echo on
REM java -jar lib/cyim.jar
REM @echo off
REM set CLASSPATH=%ORIGCLASSPATH%
 
至此告一段落!以后再深入..........
 
java -classpath retroguard.jar RetroGuard src.jar dest.jarscript.txt log.txt
 
 
~~其他
jar -cvfm cyim.jar manifest.mf com
//引入其他jar的混淆
java -classpath retroguard.jar;./lib/systray4j.jar RetroGuardcyim.jar cyims.jar script.txt,log.txt



0 0