`

ant在eclipse下出错

阅读更多

学着使用Ant,可以在命令行或Eclipse下运行ant.编译build.xml文件。

具体学习可以看以下两个链接:

http://oryx.iteye.com/blog/154498

http://addone.bokee.com/1389346.html

里面已经讲清楚了ant的使用和build.xml文件怎么写,但我自己在使用ant的时候确出现了一些问题。

首先我了解到Eclipse安装好之后,自己就带了ant插件,这个可以在Eclipse安装目录如我的在下面目录可以找到

C:\Program Files\eclipse3.3\plugins\org.apache.ant_1.7.0.v200706080842

也可以到网上下载

Eclipse各版本下载:http://archive.eclipse.org/eclipse/downloads/

单独下载ant:http://www.apache.org/ 在这个网站下点击ant链接即可到http://ant.apache.org/ 下载想要的ant版本。我下载了1.7.1版本的。ant配置很容易,只需在path环境变量中加入ant目录下的bin目录即可如C:\Java\ant1.7.1\bin。

然后在命令行使用ant,第一次会提示没有build.xml文件,我在eclipse里新建工程并建build.xml文件, 内容如下

  1. <projectname= "GetsTest" basedir= "WebContent" default = "Deploy_for_development" >
  2. <propertyname= "web.app.name" value= "GetsTest" />
  3. <propertyname= "deployDir" value= "c:/GeTSmart/jboss-3.2.0/server/minimal/deploy/${web.app.name}.war" />
  4. <propertyname= "name" location= "location" />
  5. <!--====================================
  6. ==target:Deploy_for_development==
  7. == for deploytodevelopment==
  8. ====================================-->
  9. <targetname= "Deploy_for_development" description= "simpledeployfordevelopment" >
  10. <!--cleanthedeploydirectory-->
  11. <echomessage= "cleanthedeploydirectory" />
  12. <deletedir= "${deployDir}" ></delete>
  13. <!--createthedeploydirectory-->
  14. <echomessage= "createthedeploydirectory" />
  15. <mkdirdir= "${deployDir}" />
  16. <!--copythesourceGetsTesttodeployDir-->
  17. <echomessage= "copythesourceGetsTesttodeployDir" />
  18. <copytodir= "${deployDir}" overwrite= "true" >
  19. <filesetdir= "." >
  20. <excludename= "**/web-temp.xml" />
  21. <excludename= "**/eus.log.*" />
  22. </fileset>
  23. </copy>
  24. </target>
  25. </project>

cd到build.xml文件所在目录直接使用ant即可,提示build successfully .

但下来就出问题了,因为我刚才是在命令行下运行的,注意使用的是我下载的ant1.7.1版本的没有问题。

在eclipse里对build.xml文件run as ant build 确出现如下的错误:

BUILD FAILED
java.lang.NoClassDefFoundError: org/xml/sax/SAXException
at org.apache.tools.ant.ProjectHelper.getProjectHelper(ProjectHelper.java:228)
at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.parseBuildFile(InternalAntRunner.java:189)
at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:400)
at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)
为什么会出现这个错误,又怎么解决呢?

首先知道我在命令行使用的ant与在eclipse下使用的ant是不同的,因为我下载的ant是1.7.1版本的,而且path指定的也是这个版本的ant,编译出来是没有问题的。所以肯定是eclipse所使用的ant有问题,所以我把eclipse自带的ant拷贝出来,他在目录C:\Program Files\eclipse3.3\plugins\org.apache.ant_1.7.0.v200706080842下面,我把path指向这个ant所在的bin目录,并在命令行运行:

出错如下:

BUILD FAILED
java.lang.NoClassDefFoundError: org/xml/sax/SAXException
at org.apache.tools.ant.ProjectHelper.getProjectHelper(ProjectHelper.java:228)
at org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:94)
at org.apache.tools.ant.Main.runBuild(Main.java:683)
at org.apache.tools.ant.Main.startAnt(Main.java:199)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)

说明问题确实出在eclipse自带的ant上。这里说明一下我的jdk使用的是1.3版本的,查了一下这个版本的JDK确实没有org/xml/sax/SAXException这个类,那怎么解决呢?

在网上有相同的错误帖子如下:http://techsharp.blogspot.com/2008/04/eclipse-and-ant-with-jdk13.html

按照上面帖子说明的方法只要将eclipse自带的插件即C:\Program Files\eclipse3.3\plugins文件夹下的org.apache.xerces_2.8.0.v200705301630.jar加到ant home Entires即可。具体操作如下:

Eclipse(我的是3.3版本的),Windows-->preferences-->Ant-->runtime-->classpath-->Ant home Entires-->add External jar

选择eclipse目录下的jar文件如C:\Program Files\eclipse3.3\plugins\org.apache.xerces_2.8.0.v200705301630.jar,点确定后再在eclipse下点build.xml文件run as ant build:

结果如下:

Buildfile: D:\eclipse3.3\workspace\GetsTest1.0\build.xml
Deploy_for_development:
[echo] clean the deploy directory
[delete] Deleting directory c:\GeTSmart\jboss-3.2.0\server\minimal\deploy\GetsTest.war
[echo] create the deploy directory
[mkdir] Created dir: c:\GeTSmart\jboss-3.2.0\server\minimal\deploy\GetsTest.war
[echo] copy the source GetsTest to deployDir
[copy] Copying 4 files to c:\GeTSmart\jboss-3.2.0\server\minimal\deploy\GetsTest.war
[copy] Copied 7 empty directories to 1 empty directory under c:\GeTSmart\jboss-3.2.0\server\minimal\deploy\GetsTest.war
BUILD SUCCESSFUL
Total time: 1 second

至此问题解决!

回想一下提示java.lang.NoClassDefFoundError: org/xml/sax/SAXException等错误是因为我的jdk版本使用的是1.3的,rt.jar里根本没有org.xml包,所以肯定会出错!那么解决办法1就是換jdk的版本,但会影响到我的程序运行,显然不行。2.就是想办法导入org.xml包,而插件org.apache.xerces_2.8.0.v200705301630.jar里面是包括org.xml包的,所以导入进来是可以解决些问题的。

在网上也看到类似的问题但解决的方法不够详细,而我刚好使用的环境jdk1.3,eclipse 3.3恰恰碰上了这个问题,所以结合起来解之。。。。

这里eclipse3.3的版本的ant.jar包中没有那个类,而最新下载的ant.jar包中有那个类,那么实际上在Windows-->preferences-->Ant-->runtime-->classpath-->Ant home Entires-->add External jar时直接把最新的ant.jar包加进来也是可以解决问题的。

分享到:
评论

相关推荐

    ant打包,解决Eclipse环境下lib自定义变量部署问题

    本篇文章将深入探讨如何使用Ant工具解决在Eclipse环境下lib目录中自定义变量部署的问题。Ant是一个由Apache软件基金会开发的Java构建工具,它以XML为基础,允许开发者定义构建任务,并提供了强大的依赖管理功能。 ...

    Ant基本应用教程学习

    在实际应用中,Ant经常和Eclipse集成在一起,通过集成插件或配置,可以在Eclipse中直接执行Ant脚本,进行项目的构建和部署。此外,Ant还能够与JUnit测试框架集成,以实现自动化测试的流程。 总之,Apache Ant作为一...

    Eclipse 常用技巧功能

    Eclipse是一款广泛使用的...熟练掌握这些Eclipse的技巧和功能,可以显著提高开发效率,减少出错的可能性,让编程变得更加高效和愉快。对于专业的开发人员来说,了解并充分利用Eclipse的这些特性是提升生产力的关键。

    Eclipse3.4.0中文版

    Eclipse 3.4.0 是一款经典的Java集成开发环境(IDE),专为开发者提供高效、易用的编程工具。这款软件在Java编程领域享有很高的声誉...通过不断地学习和实践,用户可以在Eclipse的帮助下,逐步成长为熟练的Java程序员。

    Eclipse 打包插件

    标题中的“Eclipse打包插件”主要指的是Eclipse IDE中用于创建和管理项目输出的工具,包括Ant Builder、Maven Integration、Gradle等。这些插件帮助开发者将源代码、资源文件和依赖库整合在一起,生成独立的可执行...

    ECLIPSE+WEB开发配置

    例如,开发者可能先用Eclipse+Maven创建项目,管理依赖,然后通过Eclipse+Ant进行构建,接着在Eclipse+Tomcat或Eclipse+JBoss上进行测试和部署,同时利用Eclipse+SVN进行版本控制和团队协作。每个环节都至关重要,...

    eclipse插件:有关Eclipse 3.0中的插件自动构

    为了解决这个问题,Eclipse 还提供了一个名为 `AntEclipseApplication` 的工具,它可以通过命令行方式运行,帮助开发者在非 Eclipse IDE 环境下进行插件构建。 #### 三、Eclipse 插件自动构建过程 **3.1 准备工作*...

    Eclipse 项目有一个称为 JET 的技术项目就是一个专门的代码生成器

    6. **JET与其他工具的集成**:可能还会讨论JET如何与其他Eclipse插件或构建工具(如Maven,Ant)集成,以实现完整的开发流程。 压缩包中的"HelloJET"文件可能是该教程的一个示例项目,包含了一个简单的JET模板和...

    ant 初步

    无需在每台服务器上安装复杂的IDE如Eclipse或MyEclipse,仅需携带包含构建脚本的`build.xml`文件至目标服务器,进行少量参数调整(如路径配置)后,通过执行ant命令即可完成编译、打包等流程。这一特性显著降低了...

    joc eclipse plugin

    事实上,在Eclipse中使用Jocky时,Jocky也是首先针对所选工程生成Ant的Build文件(默认名称jocky_build.xml),然后再通过Ant完成混淆编译。 以下是Jocky在Eclipse中自动生成的Ant Build 文件示例: ...

    spring+hibernate多层web开发eclipse下的开发模板.doc

    3. **库文件添加**:将 Spring、Hibernate、xDoclet、Ant 以及 MySQL JDBC Driver 的相关 jar 包添加到项目的 lib 目录下。 4. **运行构建脚本**:执行 `build.xml` 脚本来生成配置文件和 SQL 脚本。 5. **数据库...

    jocky 混肴编译rar包(ant和插件俩个版本)

    事实上,在Eclipse中使用Jocky时,Jocky也是首先针对所选工程生成Ant的Build文件(默认名称jocky_build.xml),然后再通过Ant完成混淆编译。 以下是Jocky在Eclipse中自动生成的Ant Build 文件示例: 1 ...

    eclipse中文教程

    在Eclipse中,项目是用于组织源代码和其他文件的基本单元。项目通常包含多个文件夹,每个文件夹用于存放特定类型的文件,例如源代码文件、资源文件等。 **2.4 平台核心** 平台核心包括了Eclipse的基本运行时组件,...

    eclipse快捷键大全

    相比于IDEA,MyEclipse在Hibernate和Struts的支持上更为便捷,减少了手动编写Ant文件和XML配置的时间,降低了出错后的排查难度。 Eclipse的快捷键涵盖了编辑、查看、窗口、导航、搜索、文本编辑、文件、项目、源...

    java 混淆工具,不可逆 jocky 也许是最好的了

    事实上,在Eclipse中使用Jocky时,Jocky也是首先针对所选工程生成Ant的Build文件(默认名称jocky_build.xml),然后再通过Ant完成混淆编译。 以下是Jocky在Eclipse中自动生成的Ant Build 文件示例: ...

    Android多渠道全自动打包发布工具

    在Android开发中,Ant可以替代Eclipse或Android Studio中的Gradle,用于编译、打包和测试APK。 在提供的文件列表中,`build.properties`是Ant构建过程中的配置文件,它包含项目相关的属性,如版本号、渠道名等。...

    HibernateTools-3.3.1.v201006011046R-H111-GA.zip

    在Eclipse中,插件是扩展其功能的基本单位,`features`目录下的文件则描述了这些插件的功能和依赖关系。 总结来说,Hibernate Tools是开发人员使用Hibernate框架时不可或缺的辅助工具,它通过自动化代码生成、...

    jitsi-android-257

    下载了jitsi android的版本代码后,直接导入eclipse可能报错,需要先使用命令生成一下libs库。 官方网站的步骤:https://github.com/jitsi/jitsi-android 针对上面的步骤可能会遇到如下的错误: 1.当运行ant ...

    网狐荣耀版开发使用常见问题解答

    添加环境变量 NDK_ROOT 为:C:\android-ndk-r10d 在环境变量 PATH 下追加 :%NDK_ROOT%; 至此,网狐荣耀版开发环境基本搭建完成。 q-q457189 三十二、网狐荣耀版进入手机客户端显示“获取服务器列表失败,是否重...

Global site tag (gtag.js) - Google Analytics