您的位置:首页 > 其它

ant打包程序依赖外部jar包

2017-04-21 13:01 253 查看
1、程序单独打包,执行jar包前先export jar包到环境变量

JAR_PATH=/opt/java

CLASSPATH=$CLASSPATH:.:${JAR_PATH}/

for file in ${JAR_PATH}/lib/*;

do CLASSPATH=${CLASSPATH}:$file;

done

export CLASSPATH

echo $CLASSPATH

##运行jar包

2、

2-1、解压依赖jar包到打出来的jar中

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<project default="create_run_jar" name="Create Runnable Jar for Project Sj">

    <!--this file was created by Eclipse Runnable JAR Export Wizard-->

    <!--ANT 1.7 is required                                        -->

    <target name="create_run_jar">

        <jar destfile="C:/prj5.jar" filesetmanifest="mergewithoutmain">

            <manifest>

                <attribute name="Main-Class" value="com.www.tools.DBManager"/>

                <attribute name="Class-Path" value="."/>

            </manifest>

            <fileset dir="F:/Sj/bin"/>

            <zipfileset excludes="META-INF/*.SF" src="F:/Sj/lib/poi-3.9.jar"/>

            <zipfileset excludes="META-INF/*.SF" src="F:/Sj/lib/dom4j-1.6.1.jar"/>

            <zipfileset excludes="META-INF/*.SF" src="F:/Sj/lib/poi-ooxml-3.8-20120326.jar"/>

            <zipfileset excludes="META-INF/*.SF" src="F:/Sj/lib/poi-ooxml-schemas-3.8-20120326.jar"/>

            <zipfileset excludes="META-INF/*.SF" src="F:/Sj/lib/xmlbeans-2.3.0.jar"/>

            <zipfileset excludes="META-INF/*.SF" src="F:/Sj/lib/mysql-connector-java-5.1.41-bin.jar"/>

            <zipfileset excludes="META-INF/*.SF" src="F:/Sj/lib/druid-1.0.13.jar"/>

        </jar>

    </target>

</project>

2-2、将依赖的jar包打进jar包中,编写jarinjarloader加载类,作为程序入口,先把jar包加载后再执行程序。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<project default="create_run_jar" name="Create Runnable Jar for Project zhongfangSj 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:/prj6.jar">

            <manifest>

                <attribute name="Main-Class" value="org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader"/>

                <attribute name="Rsrc-Main-Class" value="com.taiji.tools.DBManager"/>

                <attribute name="Class-Path" value="."/>

                <attribute name="Rsrc-Class-Path" value="./ poi-3.9.jar dom4j-1.6.1.jar poi-ooxml-3.8-20120326.jar poi-ooxml-schemas-3.8-20120326.jar xmlbeans-2.3.0.jar mysql-connector-java-5.1.41-bin.jar druid-1.0.13.jar"/>

            </manifest>

            <zipfileset src="jar-in-jar-loader.zip"/>

            <fileset dir="F:/Sj/bin"/>

            <zipfileset dir="F:\Sj\lib" includes="poi-3.9.jar"/>

            <zipfileset dir="F:\Sj\lib" includes="dom4j-1.6.1.jar"/>

            <zipfileset dir="F:\Sj\lib" includes="poi-ooxml-3.8-20120326.jar"/>

            <zipfileset dir="F:\Sj\lib" includes="poi-ooxml-schemas-3.8-20120326.jar"/>

            <zipfileset dir="F:\Sj\lib" includes="xmlbeans-2.3.0.jar"/>

            <zipfileset dir="F:\Sj\lib" includes="mysql-connector-java-5.1.41-bin.jar"/>

            <zipfileset dir="F:\Sj\lib" includes="druid-1.0.13.jar"/>

        </jar>

    </target>

</project>

2-3、 将依赖的jar包单独存放,在MANIFEST.MF中的Class-Path引入依赖jar包,此种方式实现依赖jar和程序分离,但jar包相对位置不能变

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<project default="create_run_jar" name="Create Runnable Jar for Project zhongfangSj 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:/prj7.jar">

            <manifest>

                <attribute name="Main-Class" value="com.taiji.tools.DBManager"/>

                <attribute name="Class-Path" value=". prj7_lib/poi-3.9.jar prj7_lib/dom4j-1.6.1.jar prj7_lib/poi-ooxml-3.8-20120326.jar prj7_lib/poi-ooxml-schemas-3.8-20120326.jar prj7_lib/xmlbeans-2.3.0.jar prj7_lib/mysql-connector-java-5.1.41-bin.jar prj7_lib/druid-1.0.13.jar"/>

            </manifest>

            <fileset dir="F:/Sj/bin"/>

        </jar>

        <delete dir="C:/prj7_lib"/>

        <mkdir dir="C:/prj7_lib"/>

        <copy file="F:/Sj/lib/poi-3.9.jar" todir="C:/prj7_lib"/>

        <copy file="F:/Sj/lib/dom4j-1.6.1.jar" todir="C:/prj7_lib"/>

        <copy file="F:/Sj/lib/poi-ooxml-3.8-20120326.jar" todir="C:/prj7_lib"/>

        <copy file="F:/Sj/lib/poi-ooxml-schemas-3.8-20120326.jar" todir="C:/prj7_lib"/>

        <copy file="F:/Sj/lib/xmlbeans-2.3.0.jar" todir="C:/prj7_lib"/>

        <copy file="F:/Sj/lib/mysql-connector-java-5.1.41-bin.jar" todir="C:/prj7_lib"/>

        <copy file="F:/Sj/lib/druid-1.0.13.jar" todir="C:/prj7_lib"/>

    </target>

</project>

jarinjarload代码及例子:http://download.csdn.net/download/yonghutwo/9821737
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ant