netbeans下将全部jar包打成一个,俗称fat jar[通俗易懂]

netbeans下将全部jar包打成一个,俗称fat jar

大家好,又见面了,我是全栈君。

netbeans的java项目中。默认会将配置好的外部引用jar包,复制到dist文件夹的lib文件夹中去。假设须要公布出去。就须要将dist文件夹生成的jar和lib文件夹都拷贝出去公布,不方便。

有非常多办法能够将全部须要的jar合成一个,俗称fat jar。

较简单的办法是改动 build.xml文件

注意默认的build.xml里面有一些凝视,当中有一行:

      -post-jar:                 called after JAR building  在jar编译完毕之后调用


于是在build.xml的 project节点的最后,添加一点内容:

   <target name=”-post-jar”> 
   <jar destfile=”./dist/终于合成的fat_jar包.jar”> 
      <zipfileset src=”./dist/lib/依赖的第三方包1.jar”/> 
      <zipfileset src=”./dist/lib/依赖的第三方包2.jar”/> 
<!–      <zipfileset src=”${reference.SubProject.jar}”/>  假设依赖其它project,在此增加–>

      <!–Include the main project dist jar…standard NB var–> 
      <zipfileset src=”${dist.jar}”/> 
   </jar> 
</target> 

然后正常使用build。clean and build功能。就会在dist文件夹下生成合成的fat jar包。

可是直接这样生成的jar包,会出现一个问题:

当用java -jar xxx.jar运行时,会报:

no main manifest attribute, in xxx.jar

因为这样打jar包。丢失了manifest信息。

解决的方法:

添加一些内容:在      <zipfileset src=”${dist.jar}”/> 这一行以下

        <manifest >
            <attribute name=”Main-Class” value=”xxx.Xxx”/>
        </manifest>

当中xxx.Xxx能够抄原生jar文件里的manifest中的Main-Class的值就可以。

又一次Clean and Build,  all set.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115494.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号