`
woniu1983
  • 浏览: 167773 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

第一次尝试Ant 打包可执行jar

    博客分类:
  • Ant
阅读更多
今天尝试了下使用Ant来打包可执行jar,要求: 不将其他依赖的jar中的class打包至目标jar中。(初学,当做学习笔记记录下)

环境: Eclipse3.5.1(自带Ant) + Java1.5

1. 建立META-INF/MANIFEST.MF文件
如下,注意Class-Path中不带“,”分隔符
Manifest-Version: 1.0
Built-By: XXX
Main-Class: aa.bb.cc.MainClass
Class-Path: . lib/commons-lang-2.5.jar lib/sqljdbc.jar lib/commons-con
 figuration-1.6.jar lib/log4j-1.2.15.jar lib/org.eclipse.swt.win32.win
 32.x86_3.5.1.v3555a.jar lib/org.eclipse.nebula.widgets.datechooser_1.
 0.0.HEAD.jar lib/commons-logging-1.1.1.jar lib/org.eclipse.nebula.wid
 gets.formattedtext_1.0.0.HEAD.jar lib/commons-collections-3.2.1.jar


2. 建立build.xml
<?xml version="1.0" encoding="UTF-8"?>

<project name="XXX" default="build"  basedir=".">

	<property name="src.dir" value="src" />

	<property name="classes.dir" value="bin"/>

	<property name="javadoc.dir" value="docs"/>
	
	<property name="obj.dir" value="obj"/>
	
	<property name="jar.name" value="XXX.jar"/>
	
	<property name="lib.dir" value="lib"/>
	
	<!-- Class path, lib-->
	<path id="classpath">
		<pathelement location="${lib.dir}/commons-collections-3.2.1.jar"/>
  		<pathelement location="${lib.dir}/commons-configuration-1.6.jar"/>
  		<pathelement location="${lib.dir}/commons-lang-2.5.jar"/>
  		<pathelement location="${lib.dir}/commons-logging-1.1.1.jar"/>
  		<pathelement location="${lib.dir}/log4j-1.2.15.jar"/>
  		<pathelement location="${lib.dir}/org.eclipse.nebula.widgets.datechooser_1.0.0.HEAD.jar"/>
  		<pathelement location="${lib.dir}/org.eclipse.nebula.widgets.formattedtext_1.0.0.HEAD.jar"/>
  		<pathelement location="${lib.dir}/org.eclipse.swt.win32.win32.x86_3.5.1.v3555a.jar"/>
  		<pathelement location="${lib.dir}/sqljdbc.jar"/>
	</path>

	<!-- Prepare -->
	<target name="delObj">
		<delete dir="${obj.dir}" />
	</target>
	
	<target name="makeObj" depends="delObj">
		<mkdir dir="${obj.dir}" />
	</target>
	
	<target name="delBin">
		<delete dir="${classes.dir}" />
	</target>
	
	<target name="makeBin" depends="delBin">
		<mkdir dir="${classes.dir}" />
	</target>
	
	<!-- Compile -->
	<target name="compile" depends="makeObj,makeBin" description="编译" >
		<javac fork="yes" srcdir="${src.dir}" destdir="${classes.dir}" debug="off" encoding="UTF-8">
				<classpath refid="classpath"/>
				<include name="**/*.java"/>
		</javac>
	</target>
	
	<target name="copyConfig" depends="compile">
		<copy todir="${classes.dir}">
				<fileset dir="${src.dir}/log4j"/>
		</copy>		
	</target>	
	
	<target name="build" depends="copyConfig" description="包装成jar文件" >
		<jar jarfile="${obj.dir}/${jar.name}" basedir="${classes.dir}" manifest="META-INF/MANIFEST.MF" >
		</jar>
	</target>
		
</project>


3. 运行Ant Build ,生成可执行jar
   注意:因为这个jar没有包含所依赖的那些jar,所以如果想要双击可执行的话,需要在当前目录建立lib文件夹,并复制依赖的jar至其中,然后即可。

0
1
分享到:
评论

相关推荐

    如何在Ant中引入第三方Jar包

    在这里,`lib`是存放第三方Jar包的目录,`**/*.jar`表示匹配该目录下的所有Jar文件。 2. **使用`&lt;path&gt;`元素** 有时,我们可能希望创建一个可重用的类路径,这时可以使用`&lt;path&gt;`元素。`&lt;path&gt;`可以看作是类路径...

    ant ant ant ant

    在描述中反复出现的"ant ant ant antant ant ant antant ant ant ant"可能象征着构建过程的自动化和持续性,每一个“ant”代表一次自动化的构建动作,强调了Ant在持续集成和持续部署(CI/CD)中的作用。 至于标签...

    使用ANT打包J2EE程序

    ### 使用ANT打包J2EE程序 #### 概述 在Java世界中,特别是对于J2EE应用程序来说,构建过程往往需要高度自动化与可重复性。Apache Ant作为一种强大的、基于XML的构建工具,提供了灵活的方式来自动执行软件构建流程...

    ant-tasks-2.4.1.FINAL.jar.zip

    在Ant中,任务是构建过程的基本单元,它们负责执行特定的操作,如编译源代码、创建JAR文件、运行测试等。 Ant的核心库提供了许多基础任务,但针对特定需求,开发者往往需要引入额外的任务集,这就是"ant-tasks"的...

    Java写的读取文件随机选一个程序,打包成可执行的exe软件

    JAR打包器将所有的类文件、资源文件和元数据打包成一个可执行的JAR文件,而转换工具则将这个JAR转换为Windows下的.exe格式,这样非Java开发人员也可以直接运行。 在提供的压缩包中,"random选一个v2.0.exe"很可能是...

    ant-netrexx-1.6.5.jar.zip

    开发者可以在自己的Java项目中引用这个JAR文件,以便利用其中提供的功能,比如编译和运行NetRexx代码。 总的来说,"ant-netrexx-1.6.5.jar.zip"是一个包含Ant与NetRexx集成的构建工具包,它简化了在Java项目中使用...

    使用Ant进行java开发

    Ant的优势在于其灵活性和易用性,它使用XML(可扩展标记语言)来描述构建过程,这种描述性语言允许开发者定义编译源代码、运行测试、打包成JAR文件、部署到服务器等任务的具体步骤。 通过学习Ant,Java开发者可以...

    ant-1.5.3-1-sources.jar.zip

    首先,"ant-1.5.3-1-sources.jar.zip"是一个包含Ant 1.5.3-1版本源代码的压缩文件。其中,"ant-1.5.3-1-sources.jar"是主要的源码文件,包含了Ant框架的所有源代码,这对于开发者来说是极其宝贵的资源。通过阅读源码...

    eclipse 中的Java程序如何打包

    这种方式更适合大型项目,可以一次性将所有依赖项打包进一个 JAR 文件中。 #### 二、将 JAR 文件转换为 .exe 文件 将 JAR 文件转换为可直接运行的 `.exe` 文件可以使程序更加易于分发和使用。这一步通常需要借助于...

    fatjar_0.0.32

    总的来说,fatjar_0.0.32是一个实用的工具,它为Java开发者提供了一种快速、简便的方式,将项目及其依赖打包成可执行的单个jar文件,极大地便利了应用程序的分发和执行。不过,合理使用和注意潜在问题也是至关重要的...

    java打包软件

    然后,打包软件如Apache Ant、Maven、Gradle等可以将这些字节码文件以及相关的资源文件整合到一起,形成一个可执行的JAR文件。JAR文件是一种归档格式,包含了多个Java类和其他资源,便于一次性加载和执行。 Apache ...

    apache-ant-1.7.0

    2. **任务驱动**:Ant通过一系列的任务(tasks)来完成工作,如编译源代码、创建JAR文件、运行测试等。这些任务可以是内置的,也可以是用户自定义的。 3. **依赖管理**:Ant理解文件之间的依赖关系,当某个文件更新...

    Ant 编译 多目录demo

    如果不指定,Ant会默认执行第一个定义的目标(通常是`default`)。 7. **Ant与Maven的比较** 虽然Ant在多目录编译上有很好的支持,但随着Maven的流行,许多新项目转向了Maven。Maven通过约定优于配置的理念,简化...

    ant简单介绍

    例如,`init`目标通常用于设置项目环境,`build`目标负责编译源代码,`javadoc`目标生成API文档,`jar`目标则用于打包编译后的类文件为JAR文件,而`all`目标可能包含所有这些任务,以一次性执行所有必要的构建步骤。...

    Java构建工具之Ant

    - `clean`:清除上一次的编译结果和生成物。 - `compile`:编译Java源代码。 - `test`:运行单元测试并生成测试报告。 - `jar`:打包编译后的类文件到JAR文件。 - `dist`:创建可分发的软件包,可能包含JAR、文档、...

    聊天和打包

    5. **生成安装包**:使用上述的打包工具,生成.exe文件(对于C#)或.jar文件(对于Java)。 6. **签名和验证**:为了安全,可能需要对打包后的文件进行签名,以便验证其来源和完整性。 7. **测试**:在不同环境中...

    [maven] 常用插件解析.docx

    maven-assembly-plugin 的用途是制作项目分发包,该分发包可能包含了项目的可执行文件、源代码、readme、平台脚本等等。maven-assembly-plugin 支持各种主流的格式如 zip、tar.gz、jar 和 war 等,具体打包哪些文件...

    Advanced.zip

    C#应用程序通常被打包为Windows Installer MSI文件或者更现代的单文件可执行(exe)安装程序。这些安装程序会处理文件复制、注册表设置、依赖项检测等一系列复杂的安装过程。Visual Studio作为C#的主要开发环境,...

    java课程设计(通讯录管理软件源代码)

    "src"目录存放源代码,"dist"目录存放编译后的可执行文件或jar包,"nbproject"是NetBeans IDE的项目配置文件,而"build"可能是构建过程中的临时文件或输出目录。 总结来说,这个Java课程设计项目涵盖了Java语言基础...

Global site tag (gtag.js) - Google Analytics