用jar命令将java class文件打包以及编写方便执行jar文件的批处理文件, 翻译兼...

来源:百度文库 编辑:神马文学网 时间:2024/06/13 05:12:45
作者:王者之剑  链接:  发表时间: 2008年05月22日
声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!
1.jar文件打包
假设需要打包的文件如下:
classes\com\albertsong\MyApp.class
classes\com\albertsong\Aaaa.class
classes\com\albertsong\util\Bbbb.class
(其中MyApp包含main函数)
建一个mymanifest.mf 文件,内容如下:
Main-Class: com.albertsong.MyApp
建一个myjar.bat文件,内容如下:
set JAVA_HOME=C:\jsdk1.5.0_09
set PATH=%JAVA_HOME%\bin
set CLASSPATH=%JAVA_HOME%\lib\tools.jar;
jar cvfm MyApp.jar mymanifest.mf  -C classes .
这两个文件都放到和classes同一个目录,即目录结构象下面一样
MyApp\classes\com\albertsong\MyApp.class
MyApp\classes\com\albertsong\Aaaa.class
MyApp\classes\com\albertsong\util\Bbbb.class
MyApp\mymanifest.mf
MyApp\myjar.bat
然后点myjar.bat这个文件执行就可以了:)
2.执行jar文件
建一个目录MyApp/release。
将生成的MyApp.jar复制到这个目录。
在这个目录里新建一个批处理文件run.bat,内容如下:
set JAVA_HOME=C:\jsdk1.5.0_09
set PATH=%JAVA_HOME%\bin
set CLASSPATH=%JAVA_HOME%\lib\tools.jar;
javaw -jar MyApp.jar
3.其它
1)jar cvfm MyApp.jar mymanifest.mf  -C classes .
这行命令,最后的. 一定不能掉 ,jar命令给出的帮助的例子是
jar cvfm classes.jar mymanifest -C foo/ .
但是在windows下应该改成
jar cvfm classes.jar mymanifest -C foo\ .
或者
jar cvfm classes.jar mymanifest -C foo .
2)如果应用程序比较大,可能会用到其它的库,这时可以在release目录下建一个lib
然后在run.bat的CLASSPATH中添加用到的库。
set CLASSPATH=%JAVA_HOME%\lib\tools.jar;lib\ccc.jar;lib\ddd.jar;
3)如果要指定java程序使用的内存,这样
javaw -ms100m -mx256m -jar MyApp.jar
上面指定了使用最小100M最大256M内存。
4)如果main函数要带参数
javaw -ms100m -mx256m -jar MyApp.jar  arg1 arg2
5)如果不能在控制台看到有关信息,可以用java来执行jar包
java -ms100m -mx256m -jar MyApp.jar  arg1 arg2
javaw在后台执行。
6)如果bat文件一闪而过,看不到输出,可以在文件最后一行加上pause,最好的是通过cmd.exe来运行run.bat。
后记:
老早以前写过一个,后来丢失了,今天因为忘了点号和反斜杠的问题,又浪费不少时间。