如何让打的可执行jar包可以包含外部库的解压文件

1、把别的jar包库,解压到你的classes目录下面,然后一起打成可执行jar包

build.xml 如下:

<?xml version="1.0"?>
<project name="parser" default="compile" basedir="."> 
    <target name="init">
        <mkdir dir="bin"> </mkdir>
        <mkdir dir="dest"> </mkdir>
    </target>

<path id="classpath.local">
        <pathelement location="./lib/log4j-1.2.14.jar"/>
        <pathelement location="./lib/mysql-connector-java-5.0.7-bin.jar"/>
        <pathelement location="./lib/je-3.2.43.jar"/>
        <pathelement location="./lib/nekohtml.jar"/>
        <pathelement location="./lib/Tidy.jar"/>
        <pathelement location="./lib/xercesImpl.jar"/>
        <pathelement location="bin"/>
        <pathelement location="bin/com"/>
        <pathelement location="."/>
    </path>

<target name="compile" depends="init">
        <javac destdir="bin" srcdir="src">
            <classpath refid="classpath.local"/>
        </javac>
    </target>

<target name="run" depends="compile">
        <java classname="bin/Parser" classpath="classpath.local"> </java>
    </target>

<target name="dest" depends="compile">
        <mkdir dir="dest"></mkdir>
        <jar jarfile="dest/parser.jar" basedir="bin"></jar>
    </target>

<target name="clean">
        <delete dir="bin"> </delete>
        <delete dir="dest"> </delete>
    </target>

<target name="unziplib">
        <unjar dest="bin">
            <fileset dir="lib" includes="*.jar" />
        </unjar>
    </target>

<target name="jar" depends="compile,unziplib">
        <jar jarfile="dest/Parser.jar" basedir="bin" >
        <manifest>
            <attribute name="Main-class" value="com.dyoldfish.parser.Parser"/>
        </manifest>
    </jar>
    <copy  todir="dest">
        <fileset dir="doc">
            <include name="Parser.bat"/>
            <include name="clean.bat"/>
        </fileset>
    </copy>
  </target>

</project>

2、把别的jar包库,放在你的可执行jar包外面,然后打包
build.xml如下:

<?xml version="1.0"?>
<project name="parser" default="compile" basedir="."> 
    <target name="init">
        <mkdir dir="bin"> </mkdir>
        <mkdir dir="dest"> </mkdir>
    </target>

<path id="classpath.local">
        <pathelement location="./lib/log4j-1.2.14.jar"/>
        <pathelement location="./lib/mysql-connector-java-5.0.7-bin.jar"/>
        <pathelement location="./lib/je-3.2.43.jar"/>
        <pathelement location="./lib/nekohtml.jar"/>
        <pathelement location="./lib/Tidy.jar"/>
        <pathelement location="./lib/xercesImpl.jar"/>
        <pathelement location="bin"/>
        <pathelement location="bin/com"/>
        <pathelement location="."/>
    </path>

<target name="compile" depends="init">
        <javac destdir="bin" srcdir="src">
            <classpath refid="classpath.local"/>
            <!--include name="com/**"/-->
        </javac>
        <copy  todir="bin">
            <fileset dir="doc" includes="run.bat"/>
        </copy>
    </target>

<target name="run" depends="compile">
        <java classname="bin/Parser" classpath="classpath.local"> </java>
    </target>

<target name="dest" depends="compile">
        <mkdir dir="dest"></mkdir>
        <jar jarfile="dest/parser.jar" basedir="bin"></jar>
        <!--copy todir="dest"/-->
            <!--fileset dir="bin" includes="*.class" /-->
        <!--/copy-->
    </target>

<target name="clean">
        <delete dir="bin"> </delete>
        <delete dir="dest"> </delete>
    </target>

<target name="jar" depends="compile">
        <jar jarfile="dest/Parser.jar" basedir="bin" 
        includes="com/**/*.class">
        <manifest>
            <attribute name="Main-class" value="com.dyoldfish.parser.Parser"/>
            <attribute name="Class-path" value=". ../lib/log4j-1.2.14.jar ../lib/mysql-connector-java-5.0.7-bin.jar ../lib/je-3.2.43.jar ../lib/nekohtml.jar ../lib/Tidy.jar ../lib/xercesImpl.jar"/>
        </manifest>
        <!--fileset dir="lib" includes="*.jar" /-->
    </jar>
    <copy  todir="dest">
        <fileset dir="doc" includes="Parser.bat"/>
    </copy>
  </target>

</project>

原文地址:https://www.cnblogs.com/junlinqunxia/p/8889226.html

时间: 2024-11-02 22:16:41

如何让打的可执行jar包可以包含外部库的解压文件的相关文章

jar命令打包与java执行jar包

JAR命令详解 jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目录] 文件名 - 其中 {ctxu} 是 jar 命令的子命令,每次 jar 命令只能包含 ctxu 中的一个,它们分别表示: -c 创建新的 JAR 文件包 -t 列出 JAR 文件包的内容列表 -x 展开 JAR 文件包的指定文件或者所有文件 -u 更新已存在的 JAR 文件包 (添加文件到 JAR 文件包中) [vfm0M] 中的选项可以任选,也可以不选,它们是 jar 命令的选项参

IDEA 打可执行jar包(maven项目)

1. Ctrl+Shift+Alt+S  打开 Project Structure  2.选择要执行的文件,  依次选择 项目, 方法所在文件(必须有main方法), 保存 3.如果之前路径下曾经打过jar包,报错, 直接删除路径下的 MANIFEST.MF 文件, 在重新操作  4.如果没有出现步骤3, 点击确定会生成jar,如下图 5. 编译jar, 找到刚打的jar包, 最终输出在项目的out 目录 6.执行jar (传递到服务器上, 默认执行jar 包中的main方法) java -ja

Java项目生成可执行jar包、exe文件以及在Windows下的安装文件

1.如何通过eclipse将Java项目生成可执行jar包 首先把在eclipse下的java项目导出jar file 下一步 下一步 下一步 最后点击完成,便生成了可执行的jar文件.可以在刚刚选择导出目录的文件夹中找到. 2.将刚刚生成的jar文件导出可执行的.exe文件,首先安装exe4j软件,下载地址如下:http://www.jb51.net/softs/541579.html,下载后安装破解.打开界面如下 直接下一步,选择第二个 下一步 下一步 如果要在64位下运行,则要点击下面那个

用指定jdk执行jar包

在运行jar包前执行以下命令,作用是在当前命令行窗口作用域内修改环境变量: export JAVA_HOME=/root/jiabao.gao/Hbase2Redis-1.0.0-SNAPSHOT/jdk1.7.0_55export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport MAX_LOCKED_MEMORY=unlimitedG 执行后用exp

Java打包可执行jar包 包含外部文件

外部文件在程序中设置成相对当前工程路径,执行jar包时,将外部文件放在和jar包平级的目录. 1 public class Main { 2 3 4 public static void main(String[] args) throws IOException, InterruptedException { 5 6 String a=args[0]; 7 8 String b=args[1]; 9 10 String c=args[2]; 11 12 String[] cmd=new Str

Gradle构建可执行Jar包(转载请注明出处)

最近开始接触Java,认识到一个似乎比Maven好用的构建工具Gradle,还来不及细细研究,但是需要构建一个可执行Jar包.上网查了一下.中文的文章千篇一律的提到一个插件apply plugin: 'executable-jar' (https://github.com/stigkj/gradle-executable-jar-plugin) ,也不知道是谁复制了谁的. 但是构建的时候不认这个插件,所以寻找其他方法. 用压缩软件打开Eclipse生成的可执行Jar包与Gradle构建的Jar包

Intellijidea 打可执行jar包

工作中使用intellijidea 16将一个java程序打包成可执行jar包时出现问题, Error: Invalid or corrupt jarfile project.jar 的问题,无法运行jar包 解决方法: 我的最终要求是将程序和外部依赖打成一个可运行的jar包,而不是将程序和依赖分开,所以,在File -> project Structure 选择Artifacts,点击+,选择jar,选择From modules with Dependencies. 出来如下图: 在Main

java命令执行jar包的方式

大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口. 具体的方法是修改jar包内目录META-INF下的MANIFEST.MF文件. 比如有个叫做test.jar的jar包,里面有一个拥有main函数的main class:test.someClassName 我们就只要在MANIFEST.MF里面添加如下一句话: Main-Class: test.someClassName 然后我们可以在控制台里输入java

eclipse生成可执行jar包[转]

相信大家在开发java的时候一定会遇到要求将java工程打包成可运行的jar的需求,今天我在这篇博客中详细讲解一下生成可运行jar的两种方法,亲测完全可行. 1. 工程中不包含第三方的jar包 这种情况比较简单,选中需要生成jar的工程,右击-->Export,出现如下的窗口 选中java--- > JAR file,出现如下窗口, 此处要: 选中 Export generated class files and resources: 选中 Compress the contents of t