ant打包程序依赖外部jar包

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
=======================================================

在linux中就制作一个shell命令,run.sh,内容为:

#!/bin/sh
#获取当前目录
PWD=`pwd`
 CLASSPATH=$PWD/JOSP.jar:"$CLASSPATH"
for i in lib/*.jar;
do CLASSPATH=$PWD/$i:"$CLASSPATH";
done
export CLASSPATH=.:$CLASSPATH
java -cp $CLASSPATH  jospserver.ospserver 192.168.100.206 7 chenyi 

这样就省去了设置JOSP.jar文件中MAINFEST里面的classpath参数,而且可以根据需要添加和删除lib文件夹中的.jar文件而不需要修改MAINFEST

##运行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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值