用ant打包可运行的jar文件 (将第三方jar包放进你自己的jar包)
2012-10-17 09:41
615 查看
用ant打包可运行的jar文件(将第三方jar包放进你自己的jar包)
Jar文件的运行方式直接双击或者
Java –jar xxxx.jar
要能直接运行必须在jar包下的MANIFEST.MF文件中添加入口类,就是带Main函数的。
例如:Main-Class: com.safx.processor.Starter
在MANIFEST.MF文件中添加了Main-Class这个属性,在运行jar包的时候默认就调用了这个类作为入口类。
下面列举用ant打包jar文件的3中方式:
1. 解压第三方jar包然后和你的class文件一起打包进jar文件
上面的<filesetdir="D:/SeleniumAutomation/SAFX-3.1/bin"/> 这一段是 我自己的class文件路径。
我们的Main-Class属性设置为 com.safx.processor.Starter
上图就是我们用第一中方法打包成jar文件之后所有的内容。
2.将第三方jar直接打包进我们要生成的jar包
上边的ant脚本相比第一中方法多了Rsrc-Main-Class和Rsrc-Class-Path这两个属性。
使用这种方法,我们需要额外引进一个jar-in-jar.zip文件。
<zipfileset src="jar-in-jar-loader.zip"/>
这个是eclipse 自带的,在打包完成之后,会将jar-in-jar.zip解压到你的jar包中
Jar-in-jar.zip 包含了上面这些class,写class在
org.eclipse.jdt.internal.jarinjarloader 包下
上图就是我们用第二中方法打包之后jar包里所有的文件。
上图就是我们用第二中方法打包之后jar包里所有的文件。
上面ant脚本中,我们自己的jar包叫做333.jar打包到桌面。在桌面建一个lib文件,将第三方 jar文件拷贝到lib文件夹中。 在Class-Path属性中设置第三方jar的相对路径。
上图就是就是打包完之后的格式。
第三中方式与第一和第二中方式不同的是,这中方法会有多个文件,不像第一和第二中方式中只生成一个jar文件,但也有优势就是结构相对比较简洁。选择哪中方式,还是看个人喜好吧。
3.拷贝第三方jar到一个文件(如 lib文件夹),这个文件夹与我们自己的jar文件在在同级目录
转载地址:/article/10558006.html
Jar文件的运行方式直接双击或者
Java –jar xxxx.jar
要能直接运行必须在jar包下的MANIFEST.MF文件中添加入口类,就是带Main函数的。
例如:Main-Class: com.safx.processor.Starter
在MANIFEST.MF文件中添加了Main-Class这个属性,在运行jar包的时候默认就调用了这个类作为入口类。
下面列举用ant打包jar文件的3中方式:
1. 解压第三方jar包然后和你的class文件一起打包进jar文件
<span style="font-family:SimSun;font-size:12px;"><?xml version="1.0" encoding="UTF-8" standalone="no"?> <project default="create_run_jar" name="Create Runnable Jar for Project SeleniumAutomation-3.1"> <!--this file was created by Eclipse Runnable JAR Export Wizard--> <!--ANT 1.7 is required --> <target name="create_run_jar"> <jar destfile="C:/Users/topcat/Desktop/111.jar" filesetmanifest="mergewithoutmain"> <manifest> <attribute name="Main-Class" value="com.safx.processor.Starter"/> <attribute name="Class-Path" value="."/> </manifest> <fileset dir="D:/SeleniumAutomation/SAFX-3.1/bin"/> <zipfileset excludes="META-INF/*.SF" src="D:/SeleniumAutomation/SAFX-3.1/lib/jaxen-1.1-beta-6.jar"/> <zipfileset excludes="META-INF/*.SF" src="D:/SeleniumAutomation/SAFX-3.1/lib/log4j-1.2.16.jar"/> <zipfileset excludes="META-INF/*.SF" src="D:/SeleniumAutomation/SAFX-3.1/lib/mail.jar"/> <zipfileset excludes="META-INF/*.SF" src="D:/SeleniumAutomation/SAFX-3.1/lib/testng-6.0.1.jar"/> <zipfileset excludes="META-INF/*.SF" src="D:/SeleniumAutomation/SAFX-3.1/lib/dom4j-1.6.1.jar"/> <zipfileset excludes="META-INF/*.SF" src="D:/SeleniumAutomation/SAFX-3.1/lib/guava-r09.jar"/> <zipfileset excludes="META-INF/*.SF" src="D:/SeleniumAutomation/SAFX-3.1/lib/jxl.jar"/> <zipfileset excludes="META-INF/*.SF" src="D:/SeleniumAutomation/SAFX-3.1/lib/selenium-java-2.21.0.jar"/> </jar> </target> </project> </span>
上面的<filesetdir="D:/SeleniumAutomation/SAFX-3.1/bin"/> 这一段是 我自己的class文件路径。
我们的Main-Class属性设置为 com.safx.processor.Starter
上图就是我们用第一中方法打包成jar文件之后所有的内容。
2.将第三方jar直接打包进我们要生成的jar包
<span style="font-family:SimSun;font-size:12px;"><?xml version="1.0" encoding="UTF-8" standalone="no"?> <project default="create_run_jar" name="Create Runnable Jar for Project SeleniumAutomation-3.1 with Jar-in-Jar Loader"> <!--this file was created by Eclipse Runnable JAR Export Wizard--> <!--ANT 1.7 is required --> <target name="create_run_jar"> <jar destfile="C:/Users/topcat/Desktop/1212.jar"> <manifest> <attribute name="Main-Class" value="org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader"/> <attribute name="Rsrc-Main-Class" value="com.safx.processor.Starter"/> <attribute name="Class-Path" value="."/> <attribute name="Rsrc-Class-Path" value="./ jaxen-1.1-beta-6.jar log4j-1.2.16.jar mail.jar testng-6.0.1.jar dom4j-1.6.1.jar guava-r09.jar jxl.jar selenium-java-2.21.0.jar"/> </manifest> <zipfileset src="jar-in-jar-loader.zip"/> <fileset dir="D:/SeleniumAutomation/SAFX-3.1/bin"/> <zipfileset dir="D:\SeleniumAutomation\SAFX-3.1\lib" includes="jaxen-1.1-beta-6.jar"/> <zipfileset dir="D:\SeleniumAutomation\SAFX-3.1\lib" includes="log4j-1.2.16.jar"/> <zipfileset dir="D:\SeleniumAutomation\SAFX-3.1\lib" includes="mail.jar"/> <zipfileset dir="D:\SeleniumAutomation\SAFX-3.1\lib" includes="testng-6.0.1.jar"/> <zipfileset dir="D:\SeleniumAutomation\SAFX-3.1\lib" includes="dom4j-1.6.1.jar"/> <zipfileset dir="D:\SeleniumAutomation\SAFX-3.1\lib" includes="guava-r09.jar"/> <zipfileset dir="D:\SeleniumAutomation\SAFX-3.1\lib" includes="jxl.jar"/> <zipfileset dir="D:\SeleniumAutomation\SAFX-3.1\lib" includes="selenium-java-2.21.0.jar"/> </jar> </target> </project></span>
上边的ant脚本相比第一中方法多了Rsrc-Main-Class和Rsrc-Class-Path这两个属性。
使用这种方法,我们需要额外引进一个jar-in-jar.zip文件。
<zipfileset src="jar-in-jar-loader.zip"/>
这个是eclipse 自带的,在打包完成之后,会将jar-in-jar.zip解压到你的jar包中
Jar-in-jar.zip 包含了上面这些class,写class在
org.eclipse.jdt.internal.jarinjarloader 包下
上图就是我们用第二中方法打包之后jar包里所有的文件。
上图就是我们用第二中方法打包之后jar包里所有的文件。
<span style="font-family:SimSun;font-size:12px;"><?xml version="1.0" encoding="UTF-8" standalone="no"?> <project default="create_run_jar" name="Create Runnable Jar for Project SeleniumAutomation-3.1 with libraries in sub-folder"> <!--this file was created by Eclipse Runnable JAR Export Wizard--> <!--ANT 1.7 is required --> <target name="create_run_jar"> <jar destfile="C:/Users/topcat/Desktop/333.jar"> <manifest> <attribute name="Main-Class" value="com.safx.processor.Starter"/> <attribute name="Class-Path" value=". lib/jaxen-1.1-beta-6.jar lib/log4j-1.2.16.jar lib/mail.jar lib/testng-6.0.1.jar lib/dom4j-1.6.1.jar lib/guava-r09.jar lib/jxl.jar lib/selenium-java-2.21.0.jar"/> </manifest> <fileset dir="D:/SeleniumAutomation/SAFX-3.1/bin"/> </jar> <delete dir="C:/Users/topcat/Desktop/lib"/> <mkdir dir="C:/Users/topcat/Desktop/lib"/> <copy file="D:/SeleniumAutomation/SAFX-3.1/lib/jaxen-1.1-beta-6.jar" todir="C:/Users/topcat/Desktop/lib"/> <copy file="D:/SeleniumAutomation/SAFX-3.1/lib/log4j-1.2.16.jar" todir="C:/Users/topcat/Desktop/lib"/> <copy file="D:/SeleniumAutomation/SAFX-3.1/lib/mail.jar" todir="C:/Users/topcat/Desktop/lib"/> <copy file="D:/SeleniumAutomation/SAFX-3.1/lib/testng-6.0.1.jar" todir="C:/Users/topcat/Desktop/lib"/> <copy file="D:/SeleniumAutomation/SAFX-3.1/lib/dom4j-1.6.1.jar" todir="C:/Users/topcat/Desktop/lib"/> <copy file="D:/SeleniumAutomation/SAFX-3.1/lib/guava-r09.jar" todir="C:/Users/topcat/Desktop/lib"/> <copy file="D:/SeleniumAutomation/SAFX-3.1/lib/jxl.jar" todir="C:/Users/topcat/Desktop/lib"/> <copy file="D:/SeleniumAutomation/SAFX-3.1/lib/selenium-java-2.21.0.jar" todir="C:/Users/topcat/Desktop/lib"/> </target> </project></span>
上面ant脚本中,我们自己的jar包叫做333.jar打包到桌面。在桌面建一个lib文件,将第三方 jar文件拷贝到lib文件夹中。 在Class-Path属性中设置第三方jar的相对路径。
上图就是就是打包完之后的格式。
第三中方式与第一和第二中方式不同的是,这中方法会有多个文件,不像第一和第二中方式中只生成一个jar文件,但也有优势就是结构相对比较简洁。选择哪中方式,还是看个人喜好吧。
3.拷贝第三方jar到一个文件(如 lib文件夹),这个文件夹与我们自己的jar文件在在同级目录
转载地址:/article/10558006.html
相关文章推荐
- 用ant打包可运行的jar文件 (将第三方jar包放进你自己的jar包)
- 用ant打包可运行的jar文件 (将第三方jar包放进你自己的jar包)
- 用ant打包可运行的jar文件 (将第三方jar包放进你自己的jar包)
- ant编译打包可运行的jar文件,并包含所依赖的第三方jar包
- ant编译打包可运行的jar文件,并包含所依赖的第三方jar包
- 用ant打包可运行的jar文件
- 【ant项目构建学习点滴】--(3)打包及运行jar文件
- 【ant项目构建学习点滴】--(3)打包及运行jar文件
- 重启多个tomcat,可打包成jar文件直接运行
- MFC程序中将软件打包后,setup.exe文件自己电脑运行正常,别人电脑显示找不到文件路径
- 【深入JAVA】程序打包成Jar包运行并读取外部配置文件
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
- java—(5)Eclipse将引用了第三方jar包的Java项目打包成jar文件
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
- Java项目打包JAR文件并运行
- 如何把java项目(java文件)打包成.jar文件,双击即可运行.
- Storm开发打包问题:Ant编译把第三方jar打入打包的JAR中
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法