jar包和war包的打包规范模板.docx
《jar包和war包的打包规范模板.docx》由会员分享,可在线阅读,更多相关《jar包和war包的打包规范模板.docx(5页珍藏版)》请在冰点文库上搜索。
jar包和war包的打包规范模板
CMD模式下实现jar打包
注意包名以及manifest.mf文件每一个冒号有空格
最后一行为空
1、编译java文件
2、写manifest.mf文件
Manifest-Version:
1.0
Main-Class:
<空格>package.class//指定主类,目的是如果有main函数能够直接运行
Class-Path:
包含的其它jar包中间空格间隔如果有多个jar包且不能为jar包中的jar包。
是需要在包里面包含的本地包lib/edd/.
<换行>最后一行为空行
保存
注意:
没有添加主清单属性则不能够直接经过java–jar包名.jar运行文件
Cmd下执行jar–cvfmname.jarmanifest.mf文件.class
这种情况是打包没有package名的.class文件。
jar{ctxu}[vfm0Mi][jar-文件][manifest-文件][-C目录]文件名
jarcvfmclasses.jarmymanifest.mf-Cfoo/.文件夹下所有类打包
foo为文件夹。
这种是打包有包名的.class。
应为这种情况下编译会产生cn.mypackage的情况
因此在manifest文件中会写出,而且也需啊把包的文件夹放在与manifest同一个位置再打包运行即可
运行即是java–jarname.jar;这种情况必须要有manifest文件。
不然不能执行main函数
含有多个java编译文件,属于同一个包的打包。
也是上诉方法,将其编译到一个包文件夹中,然后编译运行即可。
Jar包的导入(CMD下使用)
只需要将包放入到classpath对应的文件夹下,然后使用importcn.ddd.class
即可。
如下:
importcn.mypackage.Testjar;//可是这种情况下用类需要把全名写出来不然不能访问,也就是说importcn.mypackage.*;写法是错误的
publicclasstestcout
{
publicstaticvoidmain(String[]args)
{
Testjart=newTestjar();
t.display();
}
}
运行输出:
Eclipse下实现jar包的打包
Eclipse的jar包打包同样需要多个过程
1、选择包右键选择导出jarfile
2、
3、选择要导出的文件
4、
5、选择自己的manifest或者生成的manifest
选择主类,实现直接运行。
然后finish即可
关于生成自己的manifest.mf文件问题
这种情况下是使用了第三方的jar包的情况。
因此系统生成manifest文件不可用,需要自行生成manifest文件。
Manifest-Version:
1.0
Class-Path:
lib/commons-codec.jarlib/commons-httpclient-3.1.jarlib/commons-logging-1.1.jarlib/log4j-1.2.16.jarlib/jackson-all-1.8.5.jar
Main-Class:
main.KillCheatFans
1、Class-Path:
和Main-Class:
后边都有一个空格,必须加上,否则会打包失败,错误提示为:
Invalidheaderfield;
2、假设我们的项目打包后为KillCheatFans.jar,那么按照上面的定义,应该在KillCheatFans.jar的同层目录下建立一个lib文件夹(即lib文件和打包的jar文件
在同一个目录下),并将相关的jar包放在里面。
否则将会出现”Exceptioninthread"main"java.lang.NoClassDefFoundError”的错误;
也就是说这个文件加下具有manifest文件以及lib文件,lib中存放有第三方的jar包。