`
gushuizerotoone
  • 浏览: 173818 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

备忘:生成自己的build.xml,jar包

阅读更多
参考:
http://www.roseindia.net/tutorials/ant/Howtogeneratebuildfile.shtml 主要

http://techtracer.com/2007/04/16/the-great-ant-tutorial-a-great-jump-start 参照classpath,javac中要用到

目标是可以用bin/hadoop 命令在终端执行jar包中某个class的main函数,不用在eclipse中跑。

1.使用eclipse中File-->Export--->General-->Ant Buildfiles生成一个初始的build.xml主要是用到其生成的classpath,否则自己写太麻烦了。

2.参考上面的第一个链接,自己写一个:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- WARNING: Eclipse auto-generated file.
              Any modifications will be overwritten.
              To include a user specific buildfile here, simply create one in the same
              directory with the processing instruction <?eclipse.ant.import?>
              as the first entry and export the buildfile again. -->
<project basedir="." default="jar" name="PscNew">
    <property environment="env"/>
    <property name="target" value="1.6"/>
    <property name="source" value="1.6"/>
    <property name="dir.src" value="src"/>
    <property name="dir.build" value="build"/>
    <property name="dir.dest" value="dest"/>


    <path id="PscNew.classpath">
        <pathelement location="../../../src/hadoop-0.20.2/lib/junit-3.8.1.jar"/>
       ...(中间还有很多)
        <pathelement location="lib/zookeeper-3.2.2.jar"/>
    </path>
   
    <target name="clean" description="Removing the all generated files.">
        <delete dir="${dir.build}"/>
        <delete dir="${dir.dest}"/>
    </target>

    <target name="prepare" depends="clean">
        <mkdir dir="${dir.build}"/>
        <mkdir dir="${dir.dest}"/>
        <mkdir dir="${dir.src}"/>
    </target>

    <target name="compile" depends="prepare" description="Compilation of all source code.">
        <javac srcdir="${dir.src}" destdir="${dir.build}">
            <classpath refid="PscNew.classpath"/>
        </javac>
    </target>

    <target name="jar" depends="compile" description="Generates PscNew.jar file in to the 'dest' directory.">
        <jar jarfile="${dir.dest}/psc.jar" basedir="${dir.build}">
         <manifest>
            <attribute name="Main-Class" value="clusterText/MainDriver"/>

        </manifest>
        </jar>
    </target>
</project>

3.上面的注意几点:
(1)project 中default="jar"说明假如你用ant命令的话(就在终端执行ant,则会默认执行target:jar,当然你也可以用ant jar)
(2)我的classpath(PscNew.classpath)是用eclipse生成的,不用自己去写,eclipse中生成的其他东西还是删掉吧,没用
(3)javac中要用到classpath
(4)设置Main-Class:MainDriver是一个类(这里不用跟.class/.java)clusterText包在src下。设置Main-Class后比如你执行bin/hadoop jar psc.jar的话它就会自动执行Main-Class的main函数
(5)主要设置好src的路径就好了,它下面的包的路径不用理

4.在终端cd到那个目录:输入ant回车,就生成需要的包${dir.dest}/psc.jar

5.bin/hadoop jar /home/gushui/workspaces/newpscworkspace/PscNew/dest/psc.jar 执行 (根据自己jar的路径设置)这时会自动执行Main-Class的main函数

6.上面执行的命令可能说某个jar中的类没有找到。是因为没有设置自己写的工程的lib里那些jar的classpath的原因。很naive的解决方法:我把工程用到的包放到$HADOOP_HOME/lib里了,因为执行bin/hadoop的命令的时候会把lib里的这些jar包设置到classpath里。ok,再执行一下命令,ok pass。当然你也可以自己手动把这些jar包设置到classpath里.
分享到:
评论

相关推荐

    微信小程序推荐demo:备忘录:适用1028版本.zip

    "微信小程序推荐demo:备忘录:适用1028版本.zip"是一个示例项目,展示了如何利用微信小程序框架开发一个备忘录应用。这个压缩包包含了该项目的源代码和其他相关资源,适用于微信小程序的1028版本。 在微信小程序的...

    微信小程序推荐demo:备忘录:适用1028版本.rar

    这个“微信小程序推荐demo:备忘录:适用1028版本.rar”压缩包文件是一个关于如何开发微信小程序的示例,特别是一个备忘录应用的实现。通过学习和分析这个示例,开发者可以了解微信小程序的基本结构、组件使用以及...

    beiwanglu.zip_site:www.pudn.com

    描述部分提到“备忘录对xml文件进行访问,by周哲贤运用java语言”,这揭示了几个关键知识点: 1. **XML文件**:XML(eXtensible Markup Language)是一种标记语言,常用于数据交换、配置文件和结构化数据存储。在...

    javax.servlet-api-3.1.0.jar

    开发者可以通过实现`javax.servlet.Filter`接口来创建过滤器,并通过`web.xml`部署描述符配置过滤规则。 Listener则是在特定事件发生时被调用的类,比如session创建、销毁或请求初始化等。它们通过实现不同的监听器...

    Android开发之Eclipse制作简易备忘录[定义].pdf

    例如,`activity_main.xml`可能包含一个`EditText`用于输入备忘内容和一个`Button`用于保存备忘。 - **组件和ID**:每个UI组件都有唯一的ID,如`@+id/et_content`和`@+id/bt_write`,这使得在代码中可以通过ID找到...

    Java描述设计模式(24):备忘录模式.zip

    Java描述设计模式(24):备忘录模式

    Ajax学习 网址备忘录.txt

    ### Ajax学习网址备忘录知识点概述 #### 一、什么是Ajax? Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换来实现...

    caip.rar_site:www.pudn.com

    “菜谱”一词来自拉丁语,原意为“指示的备忘录”,本是厨师为了备忘的记录单子。现代餐厅的菜单,不仅要给厨师看,还要给客人看。我们可以用一句话概括:“菜谱是餐厅提供的商品目录和介绍书。它是餐厅的消费指南,...

    IAI

    时钟功能:显示当前时间/计时/备忘提醒/网络连接计时/定时休眠/定时截图;;辅助浏览:自动关闭IE弹出广告/自动关闭QQ弹出广告(出现时立刻关闭,不必等候);;系统功能:用符号输出大字/截图/休眠.

    Android 备忘录记事本ui界面设计毕业设计源码,android studio编译,项目有源文件和apk

    Android 备忘录记事本ui界面设计毕业设计源码,android studio编译,项目有源文件和apk,参考链接:https://blog.csdn.net/babyai996/article/details/121196487

    docs:持续更新..

    开发备忘 :person_mountain_biking: :person_mountain_biking: HTML备忘 :person_mountain_biking: CSS备忘 :person_mountain_biking: 2021训练专题 :watermelon: XSS和XSRF攻击模仿及预防 :watermelon:虚拟...

    微信小程序课程设计-备忘录.zip

    微信小程序实例,下载下来,用微信开发者工具就可以运行使用,项目运行和源码都在里面。 可根据个人的需求,进行一些修改,即可用于课程设计,毕业设计,项目实战等。 用微信开发者工具打开即可 ...

    android studio项目实战-备忘录

    ### Android Studio项目实战——备忘录 #### 一、项目概述 本项目旨在通过实际操作的方式,让开发者深入了解Android Studio的使用方法,并掌握如何利用该工具进行备忘录应用程序的开发。通过本项目的实践,不仅...

    Android源码——备忘录源码.zip

    开发者可能会使用Android Studio中的布局编辑器设计XML布局文件,定义UI组件,如EditText(用于输入文本)、ListView或RecyclerView(用于展示备忘录列表)以及Button(用于执行操作)。 在数据存储方面,Android...

    日程管理软件 1.0 中文版 包括了日历_日程表_备忘录等功能

    日程管理软件 1.0 中文版 包括了日历_日程表_备忘录等功能更多精彩,欢迎来我的论坛逛逛! 快乐论坛630 http://hanranran.5d6d.com/bbs.php 快乐网赚论坛 http://wangzhuan630.5d6d.com/bbs.php 中国网赚论坛 ...

    Safety-checklist::palm_tree:一些安全备忘清单

    安全备忘清单 :palm_tree:DNSLog (已开源:) :palm_tree:DNS Tools https://tools.ipip.net/dns.php https://viewdns.info/ https://dnslytics.com/ http://dnsspy.io/ http://leafdns.com/ ...

    Word入门动画教程:新建Word文档.docx

    通过这些方法,用户不仅可以创建基本的空白文档,还能根据自己的需求,快速生成结构化的、预设格式的文档,大大提高了工作效率。此外,动画演示的过程使得学习更为直观和易懂,对于初学者来说是一大福音。

    备忘:jquery的一些实例

    标题中的“备忘:jquery的一些实例”提示我们,这篇内容主要关注的是jQuery库中的实际应用案例。jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互等任务。在这个备忘中,作者...

    智慧校园管理系统 JAVA+Vue.js+SpringBoot+MySQL

    基于Vue.js和SpringBoot的智慧校园管理系统,分为用户前台和管理后台,可以给管理员、老师、普通用户角色使用,包括记事本模块、备忘录模块、软件管理模块、课程管理模块、宿舍管理模块和系统基础模块,项目编号T291...

    Android的简易备忘录

    - 使用XML布局文件创建简洁直观的用户界面,包括添加备忘录的输入框、日期选择器以及显示备忘录列表的RecyclerView。 - RecyclerView适配器:将数据库中的数据绑定到ListView或RecyclerView,实现动态加载和滚动...

Global site tag (gtag.js) - Google Analytics