- 浏览: 921410 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (322)
- Hibernate研究&源码 (27)
- Server (10)
- Coder碎语 (64)
- EnglishMulling (11)
- About XML (1)
- persistence (12)
- Core Java & OO (23)
- Java EE (6)
- JavaScript/JSON/Ajax/ext... (22)
- 我的读书笔记 (16)
- Source Codes Study (29)
- workFlow/jBPM (22)
- OFBiz: Open For Business (1)
- 项目积累 (21)
- srcStudy_acegi (1)
- Cache/Ehcache... (9)
- Java Test/JUnit.. (7)
- maven/ant (2)
- 设计模式 (1)
- SOA/cxf/ws-security (2)
- Android (4)
- 云计算/Hadoop (2)
- 加密/签名 (1)
- 正则表达式 (1)
- htmlparser (1)
- 操作系统 (5)
- DB (1)
最新评论
-
天使建站:
这里这篇文章更详细 还有完整的实例演示:js跳出循环 ...
jQuery中each的break和continue -
heshifk:
刚刚我也遇到同样的问题,然后就在纠结为什么不能直接使用brea ...
jQuery中each的break和continue -
masuweng:
不错写的.
集万千宠爱于一身的SessionImpl:get研究(四): Hibernate源码研究碎得(8) -
muzi131313:
这个老是忘,做一下笔记还是挺好的
jQuery中each的break和continue -
lg068:
data = data.replace("\n&qu ...
项目小经验: eval与回车符
实验用例子的总体结构是这样的:
.
|-- ./build.xml
|-- ./lib
| |-- ./lib/commons-logging-1.1.1.jar
| `-- ./lib/log4j-1.2.13.jar
`-- ./src
|-- ./src/com
| `-- ./src/com/sinoi
| `-- ./src/com/sinoi/dataIO
| `-- ./src/com/sinoi/dataIO/Main.java
`-- ./src/log4j.properties
这个代码很简单, 就一个Java类Main.java, 在这里就只有一句话, 通过logger写一个“Hello world”。
Java代码是: logger.info("hello world");
这里就依赖了log4j和common-logging两个jar包。
我想把这两个所依赖的jar和Main.java编译后的class文件合并成一个jar后, 这样在实际应用中, 对方用时,就不用再考虑依赖jar包的问题了。
但运行时有问题, 报下面的异常:
[java] Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
[java] at com.sinoi.dataIO.Main.<clinit>(Unknown Source)
[java] Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
[java] at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
[java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
[java] ... 1 more
[java] Could not find the main class: com.sinoi.dataIO.Main. Program will exit.
[java] Java Result: 1
ant脚本中, 打jar包部分是这样的:
<target name="jar" depends="compile"> <copy todir="${build.dir}"> <fileset dir="${lib.dir}"/> </copy> <jar destfile="${dist.dir}/${jar.name}" basedir="${build.dir}" > <manifest> <attribute name="Main-Class" value="com.sinoi.dataIO.Main"/> </manifest> </jar> </target>
也就是通过copy把两个依赖的jar放到build文件夹下面,然后再通过jar命令把build文件夹下的所有内容都打个包。
这个再怎么改下? 相信万能的ant还是可以做到这一点的。
实验例子见附件 。
- antMergeJars.zip (375.9 KB)
- 下载次数: 153
评论
<jar destfile="${dist.dir}/${jar.name}" basedir="${build.dir}" > <manifest> <attribute name="Main-Class" value="com.sinoi.dataIO.Main"/> </manifest> </jar>
改为:
<jar destfile="${dist.dir}/${jar.name}" basedir="${build.dir}" > <manifest> <attribute name="Main-Class" value="com.sinoi.dataIO.Main"/> </manifest> <zipfileset excludes="META-INF/*.SF" src="./lib/commons-logging-1.1.1.jar" /> <zipfileset excludes="META-INF/*.SF" src="./lib/log4j-1.2.13.jar" /> </jar>
Eclipse在导出可运行jar时有一个选项可以生成相应的ant脚本, 上面的解决方式就是从此ant脚本里拷出的。
发表评论
-
List内容生成Excel文件的一个工具
2010-10-27 15:38 1395什么也不用说,直接上传代码,里面有个测试类,一看便 ... -
JSP中分情况下地set一个var
2010-10-22 15:49 1174做项目时,有些匆忙,没来得急细想,现在有些闲了,静下心来 ... -
同一个表记录某列值拷到对应列中
2010-09-29 17:52 1196我想在mysql数据库同一表中,把一条记录的值赋给另 ... -
Google docs不能上的解决办法
2010-09-28 11:28 1542自己大概有N个G的东西在Google docs上, 这些天它经 ... -
Maven管理项目切换到Eclipse环境bat脚本
2010-09-28 09:14 3355手头一个Maven管理的项目,默认情况下是用Idea开发 ... -
用jQuery来查找Option的text
2010-06-24 17:41 5183问题起引:页面中显示Table,它里面显示的是各分公司的统计数 ... -
style="display:block;"在FireFox中跳格问题
2010-06-04 11:17 2484用block时,跳格如下所示: ... -
好久没写JSP的后果
2009-04-24 08:31 1476有些日子没写JSP了, 今天干一个活时用JSP竟然出了不少错误 ... -
Java反编译: 最终用了JD.
2009-04-18 09:58 1789前些天帮一个朋友反编译一class文件, 第一时 ... -
jFreeChart收藏,大家就不必看了
2009-04-06 17:21 1327几点说明: 1, 例子来源: http://www.ite ... -
乱码(六): Linux下文件(夹)名乱码的解决
2009-03-31 08:27 4788问题见乱码(五): Linux下如何把乱码的文 ... -
乱码(五): Linux下如何把乱码的文件名转为正常?
2009-03-30 08:47 2684前面文件上传时的乱码问题告一段落了, 不过一个 ... -
乱码(四): 撬动地球的支点
2009-03-29 07:59 920写下这个标题 ... -
乱码(三): 问题的出发点
2009-03-28 09:38 1352在乱码(一): 北京西直门迷路与乱码困惑 里, 笔 ... -
乱码(二): Linux下/etc/sysconfig/i18n究竟是干什么用的?
2009-03-27 06:37 4356这些天解决乱码问题过程中,跟Linux下/etc/sysc ... -
乱码(一): 北京西直门迷路与乱码困惑
2009-03-25 08:18 1382在北京,如 ... -
小配下分布式事务管理
2009-03-03 17:18 1270由于项目要求, 需要配置下分布式事务管理.问题是这 ... -
项目所得:一个非典型性改动带来的思考(三) 之项目设计
2009-02-27 11:06 1130------------------------------- ... -
项目所得:一个非典型性改动带来的思考(二) 之对第一个问题的思考
2009-02-26 14:16 1203上篇 里以一个简化的例子把问题描述了下, 这里将当时引发的思考 ... -
项目所得:一个非典型性改动带来的思考(一) 之问题引入
2009-02-25 14:25 1289引言: 这些天项目中做了一个改动, 为了后续行文方便, ...
相关推荐
标题中的“ant将依赖的jar包和classes文件一起打成可执行jar”指的是使用Apache Ant工具来构建一个包含依赖库和编译后类文件的Java应用程序可执行JAR文件。Ant是一个基于XML的构建工具,它允许开发者通过定义任务来...
在实际开发中,你可能还需要处理依赖库,例如添加`<classpath>`元素来包含外部jar文件,或者使用`<zipgroupfileset>`来将多个jar合并到一个单一的归档文件中。同时,为了便于版本控制和团队协作,你通常会将build....
【Ant】Ant实例(1)一个Java文件依赖于某jar包,需要打包部署 在Java开发过程中,构建和部署是必不可少的环节。Apache Ant是一个广泛使用的自动化构建工具,它允许开发者编写XML配置文件来定义构建任务,如编译源...
当使用Ant进行构建时,有时需要直接从SVN获取源码或依赖库,这时就需要配置Ant与SVN的集成,这就涉及到了"Ant SVN依赖JAR包"。 首先,要使Ant能够与SVN交互,我们需要在Ant的类路径中包含Subversion的Java绑定库...
每个目标都是一系列任务的集合,任务则是执行特定操作的单元,如`javac`用于编译Java源代码,`jar`用于打包成JAR文件。 在创建可运行的JAR时,我们需要指定一个主类,这个类包含`main()`方法,作为程序的入口点。...
在Tomcat源码编译过程中,需要的jar文件主要包含以下几个方面: 1. **Java标准库**:Tomcat作为Java应用服务器,依赖于JDK提供的标准API,如Java SE的javax.servlet、java.io、java.net等核心包。 2. **Apache Ant...
在Ant的构建过程中,这个源文件会被编译成class文件,然后运行测试。 2. **build.xml**:这是Ant的构建文件,它定义了构建过程的步骤和规则。XML格式使得构建配置易于理解和维护。build.xml文件通常包括多个目标...
在给定的场景中,"ant 脚本从svn上取代码打包代码全,同时包括相关的jar包",这意味着我们需要了解如何用Ant配合Subversion(SVN)进行代码管理,并打包项目,同时处理依赖的jar文件。 首先,让我们来看看Ant脚本的...
在Java开发过程中,将代码打包成JAR(Java Archive)文件是常见的操作,这有助于部署、分发和执行Java应用程序。本篇文章将详细介绍如何成功创建并运行JAR包,主要涉及使用Ant工具进行构建。 首先,我们需要理解JAR...
ClassFinal是一款java class文件安全加密工具,支持直接加密jar包或war包,无需修改任何项目代码,兼容spring-framework;可避免源码泄漏或字节码被反编译。执行java -jar classfinal-fatjar.jar 后按提示即可完成...
`jarjar` 是一个非常实用的Java工具,主要用于重打包(repackaging)JAR文件,它允许开发者修改或移动类包路径(package names),合并多个JAR文件,甚至可以对类进行混淆(obfuscation)。在Java开发过程中,当我们...
标题中的“ant打包java project为jar”指的是使用Apache Ant工具将Java项目打包成JAR(Java Archive)文件的过程。Ant是Java开发中的一个构建工具,它以XML格式定义任务,可以自动化编译、测试、打包等流程。在这个...
FatJar是一款广泛使用的Java开发工具,它主要用于将项目的所有依赖库合并到一个单一的JAR文件中,也就是我们常说的“fat”或“uber”JAR。这种打包方式便于分发和运行,因为用户不再需要单独管理多个JAR文件。FatJar...
在软件开发中,打包是将源代码、资源文件和其他构建输出合并成一个或多个可部署单元(如JAR、WAR或EAR文件)的过程。Ant因其灵活性和广泛的社区支持,在Java项目中被广泛用于构建和打包任务。 描述中提到的链接指向...
《深入理解Tomcat源码与依赖包》 Tomcat,作为Apache软件基金会的顶级项目,是广泛应用的开源Java Servlet容器,它实现了Java EE中的Servlet和JavaServer Pages(JSP)规范。本文将深入探讨Tomcat的源码以及相关...
在Java开发过程中,将一个项目打包成可执行的bat(批处理)文件是常见的需求,尤其是在需要在没有Java运行环境的计算机上运行程序时。Ant,一个由Apache软件基金会开发的构建工具,提供了强大的功能来帮助我们实现这...
**JarinJAR**是一种打包技术,它可以将多个JAR文件打包成一个大的JAR文件。在热加载场景下,JarinJAR使得在运行时能够动态替换内部的JAR,达到更新代码的目的。然而,JarinJAR并不直接支持热加载,需要配合类加载器...
标题“Java 打包 Classes 为 Jar”涉及的是Java开发中的一个重要步骤,即将编译后的类文件打包成一个可执行的JAR(Java Archive)文件。这个过程对于部署和分发Java应用程序至关重要。下面我们将详细探讨这个主题。 ...
在“使用ant打一个包”的场景中,我们需要理解`build.xml`的结构和任务配置,以及如何利用Ant的特性来完成编译、打包等操作。尽管现代有许多其他构建工具,如Maven和Gradle,但Ant的灵活性和可定制性使其在某些特定...