您的当前位置:首页正文

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 –cvfm name.jar manifest.mf 文件.class 这种情况是打包没有package名的.class文件。

jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名

jar cvfm classes.jar mymanifest.mf -C foo/ . 文件夹下所有类打包 foo为文件夹。

这种是打包有包名的.class。应为这种情况下编译会产生cn.mypackage的情况

因此在manifest文件中会写出,而且也需啊把包的文件夹放在与manifest同一个位置再打包运行即可

运行即是java –jar name.jar;这种情况必须要有manifest文件。不然不能执行main函数

含有多个java编译文件,属于同一个包的打包。也是上诉方法,将其编译到一个包文件夹中,然后编译运行即可。

Jar 包的导入(CMD下使用)

只需要将包放入到classpath对应的文件夹下,然后使用import cn.ddd.class 即可。 如下:

import cn.mypackage.Testjar;//但是这种情况下用类需要把全名写出来不然不能访问,也就是说import cn.mypackage.*;写法是错误的 public class testcout { public static void main(String[] args) {

}

}

Testjar t = new Testjar(); 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.jar lib/commons-httpclient-3.1.jar

lib/commons-logging-1.1.jar lib/log4j-1.2.16.jar lib/jackson-all-1.8.5.jar Main-Class: main.KillCheatFans

1、Class-Path: 和Main-Class: 后边都有一个空格,必须加上,否则会打包失败,错误提示为:Invalid header field;

2、假设我们的项目打包后为KillCheatFans.jar,那么按照上面的定义,应该在

KillCheatFans.jar的同层目录下建立一个lib文件夹(即lib文件和打包的jar文件

在同一个目录下),并将相关的jar包放在里面。否则将会出现“Exception in thread \"main\" java.lang.NoClassDefFoundError”的错误;

也就是说这个文件加下具有manifest文件以及lib文件,lib中存放有第三方的jar包。

3、Main-Class后面是类的全地址,比如你的主文件是KillCheatFans.java,文件里打包为package com.main; 那么这里就写com.main.KillCheatFans,

不要加.java后缀,主文件地址写错将会出现“找不到或无法加载主类”的错误;

4、写完Main-Class后一定要回车(即最后一行是空白行),让光标到下一行,这样你生成的jar包才能找到你的主class去运行,

否则将会出现“jar中没有主清单属性”的错误。

注意eclipse下的文件最好都利用工程的file系统建立,不然会出现读取不到文件资源

以上情况下若想使用eclipse打包。需要在工程下建立文件夹放置第三方包(eclipse装载包的方法三)。然后工程文件夹下新建一个MANIFEST.MF文件写入配置信息。这样保证了装有第三方包的文件与MANIFEST.MF处于一个文件夹内,这样编译不会出现问题。

然后再进行打包即可

Eclipse 生成jar包含有第三方jar包的情况

Eclipse 下实现jar包的导入

1、 加入到jdk的库文件中作为本地库使用

任何一个工程都能用到,缺点是不具有专一性。如果每一次都采用这种导包的方式最后导致jdklib杂乱无章。很难管理。因此需要单独的使用一种适用于工程的导包方式

2、 单独为一个工程导入第三方的jar包,只有这个工程使用的方法:

一共三种方法:

1、 传统导入

右击项目。选择properties java buildpathlibrariesadd external jars方法实现。

这种方法的重用性较低

而且一旦第三方的jar包被移除,那么导入包就会出错。因此这种情况下还是单独将其放置与本工程一个文件夹中,那么与第三种方法一致。

2 用户java包

Propertiesjava build pathadd labraryuser library

如果此时有创建好的库可以直接调用,或者是自己创建用户自定义库

选择new输入库添加jar包

这样用户自定义库就可以在工程中实现重用了 同样,移除文件夹也会存在问题的。

方法三文件夹法

在项目中新建文件夹。 将jar文件夹考入其中 将所需jar文件导入。

然后buildpathadd to buildpath即可

这样就加入了jar包这种方法最好。项目性质专一。而且不会受到jar包的原始路径的影响。且适合用于将当前的工程导出。

War包的问题

Eclipse下war包的打包

选中工程右键选择export warfiles选中服务器类型确定导出即可.

因篇幅问题不能全部显示,请点此查看更多更全内容

Top