起因:做了一个udpserver,需要发布到linux服务器上去,可又不能用ide去运行,还要避免源码泄露...只好将class打成可运行的jar包.
经过:先把class文件和资源文件,以及用到的jar包放到同一个目录下
文件目录:
步骤:
1.制作 MANIFEST.MF
Manifest-Version: 1.0
Created-By: 1.6.0_05 (Sun Microsystems Inc.)
Main-Class: NormalUDPServer
Class-Path: log4j-1.2.15.jar
这个mf文件的格式很重要...最好是随便找个jar,然后解压它的mf文件进行修改,避免不必要的错误...
第一行就是个版本号.随便写
第二行就是系统运行环境..这个也不用管..写上就是了
第三行是关键,写程序的运行入口,main方法所在的类
第四行是关键,要写程序里引用的第三方jar包.
2.制作jar
在命令行下运行 jar -cvfm serv.jar MANIFEST.MF *.class *.properties
显示如图:
3. 运行程序
java -jar serv.jar
经过:先把class文件和资源文件,以及用到的jar包放到同一个目录下
文件目录:
2010/01/19 19:04 <DIR> .
2010/01/19 19:04 <DIR> ..
2010/01/07 13:42 122 config.properties
2010/01/19 18:41 1,671 Configment.class
2010/01/19 18:56 2,159 DataOperation.class
2007/08/25 00:29 391,834 log4j-1.2.15.jar
2010/01/19 18:44 774 log4j.properties
2010/01/19 19:02 80 MANIFEST.MF
2010/01/19 18:56 2,949 NormalUDPServer.class
2010/01/19 18:42 1,617 StoreObject.class
2010/01/19 18:42 1,303 StoreObserver.class
步骤:
1.制作 MANIFEST.MF
Manifest-Version: 1.0
Created-By: 1.6.0_05 (Sun Microsystems Inc.)
Main-Class: NormalUDPServer
Class-Path: log4j-1.2.15.jar
这个mf文件的格式很重要...最好是随便找个jar,然后解压它的mf文件进行修改,避免不必要的错误...
第一行就是个版本号.随便写
第二行就是系统运行环境..这个也不用管..写上就是了
第三行是关键,写程序的运行入口,main方法所在的类
第四行是关键,要写程序里引用的第三方jar包.
2.制作jar
在命令行下运行 jar -cvfm serv.jar MANIFEST.MF *.class *.properties
显示如图:
2010/01/19 19:04 <DIR> .
2010/01/19 19:04 <DIR> ..
2010/01/07 13:42 122 config.properties
2010/01/19 18:41 1,671 Configment.class
2010/01/19 18:56 2,159 DataOperation.class
2007/08/25 00:29 391,834 log4j-1.2.15.jar
2010/01/19 18:44 774 log4j.properties
2010/01/19 19:02 80 MANIFEST.MF
2010/01/19 18:56 2,949 NormalUDPServer.class
2010/01/19 18:42 1,617 StoreObject.class
2010/01/19 18:42 1,303 StoreObserver.class
3. 运行程序
java -jar serv.jar