使用Ant打包jar文件的问题

雪里风火 2004-08-06 02:24:22
原来我的程序使用jbuilder开发。使用了一些其他的包,比如:jdom和log4j。我用jbuilder打包时,将使用到的jdom和log4j中的文件都打包到了我的项目中。这样,我只用一个jar包就可以了。
现在我的项目要用Ant编译打包。我想达到上面的效果。
但是总是不能将jdom和log4j中的文件打包进去,请问这个怎么处理???
我得程序是一个桌面应用程序。
...全文
248 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
FlashDragon 2004-08-06
  • 打赏
  • 举报
回复
在${build.classes}没有所需jdom和log4j包中的文件,你需要手工把这个jdom.jar和
log4j.jar文件解包,并需要在项目中引用的内容放到${build.classes}目录中,这样
就会把需要的这两个包的文件打到新的jar文件。但是这是一个很不好的习惯,因为
jdom.jar和log4j.jar是公共的类库,最好使用时,把这两个jar文件引入即可,即复制
这两个文件到${dist.lib}目录下,和你自己做的源代码一同发布。
雪里风火 2004-08-06
  • 打赏
  • 举报
回复
其实我想达到的效果是不管我的程序用了哪些包,我执行程序的时候可以不考虑这些。部署程序的时候也不用另外关心这些支持包了
雪里风火 2004-08-06
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="GB2312" ?>
<project default="dist" basedir=".">
<!--主要的系统环境属性-->
<property name="lib.dir" value="D:/lib"/>
<property name="ant_home" value="D:/ant1.62"/>
<property name="java.home" value="D:/bea/jdk141_05"/>

<!-- 定义工作目录 -->
<property name="DataExchange.dir" value=".."/>

<!--主要的app环境属性-->
<property name="app.name" value="DataExchange"/>
<property name="app.jar" value="${app.name}.jar"/>
<property name="app.copyright" value=" Copyright (c) 2002 The Neusoft Software Foundation. All rights reserved."/>


<!--app中src的属性-->
<property name="src.dir" value="${DataExchange.dir}/src" />
<property name="src.main" value="${src.dir}"/>
<!--批处理目录-->
<property name="bin.dir" value="${DataExchange.dir}/bin"/>

<!--app用到的lib-->
<!--property name="lib.dir" value="lib"/-->

<!--app的build目录中-->
<property name="build.dir" value="${DataExchange.dir}/build" />
<property name="build.classes" value="${build.dir}/classes"/>
<property name="build.lib" value="${build.dir}/lib"/>

<!--app的dist (distribution) 目录中-->
<property name="dist.dir" value="${DataExchange.dir}/dist"/>
<property name="dist.bin" value="${dist.dir}/bin"/>
<property name="dist.lib" value="${dist.dir}/lib"/>
<target name="init">
<!--清除以前目录-->
<delete dir="${build.dir}" failonerror="false" />
<delete dir="${dist.dir}" failonerror="false"/>

<!--准备目录-->
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.classes}"/>
<mkdir dir="${build.lib}"/>

<mkdir dir="${dist.dir}"/>
<mkdir dir="${dist.bin}"/>
<mkdir dir="${dist.lib}"/>

</target>

<!--
===================================================================
Build the code (Compile Tasks,File Tasks)
===================================================================
-->
<target name="build" depends="init">
<!--编译-->
<javac srcdir="${src.main}" destdir="${build.classes}">
<classpath>
<pathelement path="${ant_home}/ant.jar"/>
<pathelement path="${lib.dir}/classes12.jar"/>
<pathelement path="${lib.dir}/jdom.jar"/>
<pathelement path="${lib.dir}/log4j-1.2.8.jar"/>
</classpath>
</javac>
</target>

<!--
===================================================================
打包文档(Archive Tasks)
Create the project jars: xxx1.jar and xxx2.jar
===================================================================
-->
<target name="jars" depends="build">
<jar basedir="${build.classes}" jarfile="${build.lib}/${app.jar}"/>
</target>

<!--
===================================================================
Create the distribution that can run (Archive Tasks)
主要是从各目录中把该copy的copy上
===================================================================
-->
<target name="dist" depends="jars">
<!--copy bin 执行文件 -->
<copy todir="${dist.bin}">
<fileset dir="${bin.dir}/"/>
</copy>
<!-- copy lib 文件 -->
<copy todir="${dist.lib}">
<fileset dir="${build.lib}/"/>
</copy>

</target>
</project>
nighthawk 2004-08-06
  • 打赏
  • 举报
回复
要打进去的
dropship 2004-08-06
  • 打赏
  • 举报
回复
贴出你的build.xml文件

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧