使用Netbeans 6.7打包第三方jar

时间:2022-03-16 18:31:24

原帖地址:http://www.icycandy.com/blog/use-netbeans-to-combine-jar-files-into-a-single-jar-file

1. 正常打包

在项目上右键,然后选择【Build】即可。
使用Netbeans 6.7打包第三方jar

打包完成后,会在项目的主目录下,生成一个[dist]文件夹。可以看到所有的第三方包都被放到了lib目录下,而不是形成单个的jar包。
使用Netbeans 6.7打包第三方jar

2. 打包第三方jar

搜索了很久才找到这个方法,来自于Sun官方网站,原文在这里

在NetBeans界面的左上方,切换到【Files】标签。打开项目目录下的build.xml文件。

使用Netbeans 6.7打包第三方jar

在build.xml的最后一行

1
</project>

的前面,加入以下代码。其中,第7行中的value=”MarsRoverViewer”可以改成其他名字。比如你想生成abc.jar,那么改成value=”abc”就可以了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
    <target name="package-for-store" depends="jar">
 
<!-- Change the value of this property to be the name of your JAR,
minus the .jar extension. It should not have spaces.
<property name="store.jar.name" value="MyJarName"/>
-->
<property name="store.jar.name" value="MarsRoverViewer"/>
 
 
<!-- don't edit below this line -->
 
<property name="store.dir" value="store"/>
<property name="store.jar" value="${store.dir}/${store.jar.name}.jar"/>
 
<echo message="Packaging ${application.title} into a single JAR at ${store.jar}"/>
 
<delete dir="${store.dir}"/>
<mkdir dir="${store.dir}"/>
 
<jar destfile="${store.dir}/temp_final.jar" filesetmanifest="skip">
<zipgroupfileset dir="dist" includes="*.jar"/>
<zipgroupfileset dir="dist/lib" includes="*.jar"/>
 
<manifest>
<attribute name="Main-Class" value="${main.class}"/>
</manifest>
</jar>
 
<zip destfile="${store.jar}">
<zipfileset src="${store.dir}/temp_final.jar"
excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA"/>
</zip>
 
<delete file="${store.dir}/temp_final.jar"/>
 
</target>

改完build.xml后保存,在该文件上右键,依次选择【Run Target】【Other Targets】【package-for-store】
使用Netbeans 6.7打包第三方jar

等待一会儿运行完之后,可以在项目主目录下发现一个[store]文件夹,里面就是打包好的一个单一的jar包。
使用Netbeans 6.7打包第三方jar

3. 命令行打包第三方jar

用命令行方式打包应该是最为灵活强大的,可是目前为止我还不会。