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

apache-ant等

阅读更多
学java,很好,
JKD,环境变量那些先要弄好
先来写个类,再运行.
没有IDE可用哦.

弄个干净的文件夹,我喜欢叫aaaaa,五A级干净文件.
source code肯定要写在src目录下,
在里面弄个类,弄好了编译,再运行.
1
        类源文件:
        类肯定要有包,这里都是超级规范的动作!
        那个类必须要写在一串包里面:[就是一串很深的目录里]
================================================================================
        package com.home.hubin;
       
        public class HelloWorld {
            public static void main(String[] args) {
                System.out.println("Hello World, I am the java king!");
            }
        }
================================================================================
        写好了回到aaaaa目录
       
2
        class文件
        编译好的class文件不可以和源文件放一起,一定要放classes目录
        我放在build\classes[md build\classes]
       

3
        有源文件,有JDK,还不运行干什么?
        编译运行一起来
        开cmd!
        aaaaa目录下有src 和 build目录
================================================================================
D:\aaaaa>javac -sourcepath src -d build\classes src\com\home\hubin\HelloWorld.java

D:\aaaaa>java -cp build\classes com.home.hubin.HelloWorld
Hello World, I am the java king!
================================================================================

好了,可以运行了,有的人也用过这方式做软件,就class文件和bat文件
虽然可以运行,但是太丑了,这里说的超级规范,不允许这么运行!

至少也要弄个jar文件出来才像样嘛!
超级规范规定jar文件只可以放在jar目录里
创建jar目录[jar和class都是差不多性质的,所以也放build目录下]

弄个jar文件非常容易,弄个可以运行的jar文件也容易,加个说明就可以了
echo Main-Class: com.home.hubin.HelloWorld>myManifest
然后
D:\aaaaa>jar cfm build\jar\HelloWorld.jar myManifest -C build\classes .
一个jar弄好了
跑起来非常正常
D:\aaaaa>java -jar build\jar\HelloWorld.jar
Hello World, I am the java king!
去看看里面的信息:
重要:发现了,外面的那个什么myManifest无所谓的,到了里面从新弄文件的,
但是信息还是取的这里的哦!!

--------------------------
好了,但是觉得不觉得有点烦,用ant吧,apache的高手写的东西
看看效果怎么样:

aaaaa下,就一个src包,源文件肯定要的,然后就一个build.xml了
其他的什么都不要了:
本来就应该这样,有了源文件,有了JDK,还需要其他干什么呢?
================================================================================
<project>

    <target name="clean">
        <delete dir="build"/>
    </target>

    <target name="compile">
        <mkdir dir="build/classes"/>
        <javac srcdir="src" destdir="build/classes"/>
    </target>

    <target name="jar">
        <mkdir dir="build/jar"/>
        <jar destfile="build/jar/HelloWorld.jar" basedir="build/classes">
            <manifest>
                <attribute name="Main-Class" value="com.home.hubin.HelloWorld"/>
            </manifest>
        </jar>
    </target>

    <target name="run">
        <java jar="build/jar/HelloWorld.jar" fork="true"/>
    </target>

</project>
================================================================================
这里有四个任务,都不要说明,看xml文件就可以知道他们是做什么的了
现在可以:
ant compile
ant jar
ant run

或者一起来:

ant compile jar run
试一下,反正还可以clean啊!
========================================还要再比这个好么到哪里去找==============
D:\aaaaa>ant compile jar run
Buildfile: build.xml

compile:
    [mkdir] Created dir: D:\aaaaa\build\classes
    [javac] Compiling 1 source file to D:\aaaaa\build\classes

jar:
    [mkdir] Created dir: D:\aaaaa\build\jar
      [jar] Building jar: D:\aaaaa\build\jar\HelloWorld.jar

run:
     [java] Hello World, I am the java king!

BUILD SUCCESSFUL
Total time: 1 second
D:\aaaaa>ant clean
Buildfile: build.xml

clean:
   [delete] Deleting directory D:\aaaaa\build

BUILD SUCCESSFUL
Total time: 0 seconds
================================================================================

好归好,写死了,怎么办??
================================================================================
<project name="HelloWorld" basedir="." default="main">

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

    <property name="build.dir"   value="build"/>
    <property name="classes.dir" value="${build.dir}/classes"/>
    <property name="jar.dir"     value="${build.dir}/jar"/>

    <property name="main-class"  value="com.home.hubin.HelloWorld"/>



    <target name="clean">
        <delete dir="${build.dir}"/>
    </target>

    <target name="compile">
        <mkdir dir="${classes.dir}"/>
        <javac srcdir="${src.dir}" destdir="${classes.dir}"/>
    </target>

    <target name="jar" depends="compile">
        <mkdir dir="${jar.dir}"/>
        <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
            <manifest>
                <attribute name="Main-Class" value="${main-class}"/>
            </manifest>
        </jar>
    </target>

    <target name="run" depends="jar">
        <java jar="${jar.dir}/${ant.project.name}.jar" fork="true"/>
    </target>

    <target name="clean-build" depends="clean,jar"/>

    <target name="main" depends="clean,run"/>

</project>
================================================================================
这样就写活了,慢慢看可以看懂的
这里设置了default="main",直接ant就可以了,然后一个一个 depends 上去
也可以单独一个一个运行

是不是很完美呢?最好再可以调用外面的JAR包就更好了,调调log4j好了

外面的JAR包要放lib目录下,自己生产的要放在jar目录下
=============================先把log4j的包考近来================================
<project name="HelloWorld" basedir="." default="main">

        <property name="lib.dir"        value="lib"/>
       
        <path id="classpath">
                <fileset dir="${lib.dir}" includes="**/*.jar"/>
        </path>

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

    <property name="build.dir"   value="build"/>
    <property name="classes.dir" value="${build.dir}/classes"/>
    <property name="jar.dir"     value="${build.dir}/jar"/>

    <property name="main-class"  value="com.home.hubin.HelloWorld"/>



    <target name="clean">
        <delete dir="${build.dir}"/>
    </target>

    <target name="compile">
        <mkdir dir="${classes.dir}"/>
        <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/>
    </target>

    <target name="jar" depends="compile">
        <mkdir dir="${jar.dir}"/>
        <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
            <manifest>
                <attribute name="Main-Class" value="${main-class}"/>
            </manifest>
        </jar>
    </target>

    <target name="run" depends="jar">
        <java fork="true" classname="${main-class}">
            <classpath>
                <path refid="classpath"/>
                <path location="${jar.dir}/${ant.project.name}.jar"/>
            </classpath>
        </java>
    </target>

    <target name="clean-build" depends="clean,jar"/>

    <target name="main" depends="clean,run"/>

</project>


================================================================================
package com.home.hubin;

import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;

public class HelloWorld {
        static Logger logger = Logger.getLogger(HelloWorld.class);

    public static void main(String[] args) {
                BasicConfigurator.configure();
                logger.info("Hello,log4j");
        System.out.println("Hello World, I am the java king!");
        System.out.println("================log4j===============");
    }
}

================================================================================
这里写了BasicConfigurator.configure();是为了不出现以下警告:
D:\aaaaa>ant
Buildfile: build.xml

clean:

compile:
    [mkdir] Created dir: D:\aaaaa\build\classes
    [javac] Compiling 1 source file to D:\aaaaa\build\classes

jar:
    [mkdir] Created dir: D:\aaaaa\build\jar
      [jar] Building jar: D:\aaaaa\build\jar\HelloWorld.jar

run:
     [java] log4j:WARN No appenders could be found for logger (com.home.hubin.HelloWorld).
     [java] log4j:WARN Please initialize the log4j system properly.
     [java] Hello World, I am the java king!
     [java] ================log4j===============

main:

BUILD SUCCESSFUL
Total time: 1 second
D:\aaaaa>
一般是不用写的,因为我们必须要为log4j写配置文件
下面就要说,写了配置文件就把这行删除
重要:如果写了这个,logger.info("Hello,log4j");这个东西会出来的
这也不错,可以懒得写配置文件了
0 [main] INFO com.home.tst.HelloWorld  - Hello,log4j
上行是输出
===========================================
<project name="HelloWorld" basedir="." default="main">

        <property name="lib.dir"        value="lib"/>
       
        <path id="classpath">
                <fileset dir="${lib.dir}" includes="**/*.jar"/>
        </path>

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

    <property name="build.dir"   value="build"/>
    <property name="classes.dir" value="${build.dir}/classes"/>
    <property name="jar.dir"     value="${build.dir}/jar"/>

    <property name="main-class"  value="com.home.hubin.HelloWorld"/>



    <target name="clean">
        <delete dir="${build.dir}"/>
    </target>

    <target name="compile">
        <mkdir dir="${classes.dir}"/>
        <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/>
        <copy todir="${classes.dir}">
            <fileset dir="${src.dir}" excludes="**/*.java"/>
        </copy>
    </target>

    <target name="jar" depends="compile">
        <mkdir dir="${jar.dir}"/>
        <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
            <!--
                        <manifest>
                <attribute name="Main-Class" value="${main-class}"/>
            </manifest>
                        -->
        </jar>
    </target>

    <target name="run" depends="jar">
       
                <java fork="true" classname="${main-class}" >
               
            <classpath>
                <path refid="classpath"/>
                <path location="${jar.dir}/${ant.project.name}.jar"/>
            </classpath>
        </java>
    </target>

    <target name="clean-build" depends="clean,jar"/>

    <target name="main" depends="clean,run"/>

</project>

===================================这是可以的.里面的注释可有可以无======================
分享到:
评论

相关推荐

    apache-ant-1.9.16-bin.zip

    在解压"apache-ant-1.9.16-bin.zip"后,你会得到一个名为"apache-ant-1.9.16"的目录,其中通常包含以下关键组件: 1. **bin** 目录:包含各种平台的可执行脚本,如`ant`和`ant.bat`,它们是Ant的命令行接口,用于...

    apache-ant-1.6.5-bin.zip_ ant 1.6.5_ant_ant-1.6.5_apache ant win

    这个"apache-ant-1.6.5-bin.zip"文件是Ant的1.6.5版本的二进制发行版,适合在Windows操作系统上使用。Ant是基于Java的,它的主要功能是读取XML格式的构建文件(build.xml),根据其中的指令来编译源代码、运行测试、...

    apache-ant-1.9.16-bin.tar.gz

    安装Apache Ant 1.9.16通常涉及解压下载的"apache-ant-1.9.16-bin.tar.gz"文件。 解压过程如下: 1. 首先,你需要下载这个压缩包,通常可以通过Apache官方网站获取。 2. 使用tar命令在Linux或macOS系统中解压文件:...

    apache-ant-1.6.5-bin

    在"apache-ant-1.6.5-bin"这个压缩包中,包含了Ant的1.6.5版本的二进制发行版。Ant是Apache软件基金会的一个项目,它的设计灵感来源于Make,但采用了XML来描述构建文件,这使得构建过程更具可读性和可维护性。 **1....

    apache-ant-zip-2.3.jar.zip

    手动将apache-ant-zip-2.3.jar打包到项目中通常涉及以下步骤: 1. **下载**: 首先,你需要从可靠的源下载apache-ant-zip-2.3.jar文件。这可能是通过官方网站、第三方存储库或其他可信的资源进行的。 2. **本地存储...

    apache-ant-1.9.2-bin.zip

    这个"apache-ant-1.9.2-bin.zip"文件包含了Ant的1.9.2版本的二进制发行版,提供了运行和配置Ant所需的全部文件。 Ant的核心概念是构建文件(build.xml),这是一个XML格式的文件,定义了构建过程中的任务和目标。在...

    apache-ant-1.10.1-ant编译环境

    例如解压到E:\学习类\apache-ant-1.8.2, 2、配置环境变量。在系统环境变量中新建一个ANT_HOME 的变量,值为D:\apache-ant-1.10.1。在path 变量中添加 %ANT_HOME%\bin; 如果没有path变量,则新建一个。 3、验证ant...

    最新版linux apache-ant-1.9.15-bin.tar.gz

    标题提到的 "apache-ant-1.9.15-bin.tar.gz" 是Apache Ant的1.9.15版本的二进制发行版,以tar.gz格式压缩,这是Linux系统中常见的归档和压缩方法。 Apache Ant的核心概念是任务(Tasks),这些任务是由XML文件定义...

    apache-ant-1.10.12-bin.tar.gz

    描述中的"apache-ant-1.10.12-bin.tar.gz"是对标题的重申,进一步强调这是Apache Ant的1.10.12版本的二进制发行版,采用的是tar.gz压缩格式,这种格式在Linux和Unix系统中很常见,可以有效地减少文件大小便于网络...

    apache-ant-1.9.3-bin.zip,从外面搬过来的Visual Studio的组件

    有的小伙伴在离线VS2019安装包的时候会遇到一个包下载失败,就是这个apache-ant-1.9.3-bin.zip,下载以后解压,把apache-ant-1.9.3-bin.zip放到VS2019的缓存目录里就可以了。

    apache-ant-1.9.9.zip

    标题中的"apache-ant-1.9.9.zip"表明这是一个包含Apache Ant 1.9.9版本的压缩文件,适合在Mac终端上使用,并且已经过实际测试,确保了其兼容性和易用性。 Apache Ant的核心概念是任务(Task),这些任务是构建过程...

    apache-ant-1.10.12-bin.tar.bz2

    apache-ant-1.10.12-bin.tar.bz2

    apache-ant-1.7.0-1 src

    在"apache-ant-1.7.0-1 src"这个压缩包中,你将获得Ant 1.7.0版本的源代码,这对于开发者来说是极其宝贵的资源,可以深入理解其工作原理,进行定制化开发或调试。 Apache Ant 是基于XML的,它的主要任务定义在名为...

    apache-ant.zip

    通过"apache-ant-zip.jar"标签,我们可以推测这个压缩包可能还包括一个打包好的Ant JAR文件,这通常是为了在没有安装Ant的环境中运行构建任务。用户可以通过java -jar apache-ant-zip.jar命令来执行Ant,而无需先...

    apache-ant-1.9.2-src

    在"apache-ant-1.9.2-src"这个压缩包中,包含了Ant 1.9.2版本的源代码,这对于开发者来说是一个宝贵的学习和研究资源。以下是关于Apache Ant及其1.9.2版本的一些核心知识点: 1. **Ant概念**:Ant是基于Java的构建...

    apache-ant-1.10.5.rar

    在标题中提到的"apache-ant-1.10.5.rar"是一个包含Ant 1.10.5版本的压缩文件。这个版本的Ant是在2019年发布的一个稳定版本,它提供了许多新特性和改进,使得开发者能够更高效地管理他们的Java项目。 Ant主要基于XML...

    apache-ant-1.9.9-bin.tar.gz 【适用于linux系统】

    在“apache-ant-1.9.9-bin.tar.gz”压缩包中,包含了Apache Ant 1.9.9版本的所有必要文件,这是针对Linux系统的,因此可以在CentOS、Ubuntu等Linux发行版上顺利运行。以下是对这个压缩包及其内容的详细解释: 1. **...

    apache-ant-1.8.2

    VanetMobiSim可能是一个模拟VANET(车用无线网络)行为的研究工具,它依赖于Ant来执行编译、打包、部署等操作。Ant使得开发者可以自动化这些过程,无需手动执行每一个步骤,极大地提高了工作效率。 Apache Ant的...

    apache-ant-zip.jar

    "apache-ant-zip.jar" 文件是Apache Ant的一个组件,用于处理与ZIP归档相关的任务,特别是针对解决中文乱码问题进行了优化。 在Java中,处理ZIP文件时,必须正确地设置字符编码以确保非ASCII字符(如中文字符)能够...

    apache-ant-zip.jar包及用法

    apache-ant-zip.jar包及用法 用过java做压缩或解压的都知道,jdk提供的zip只能按UTF-8格式处理,所有jdk提供的zip不能支持中文文件名,可以采用Apache的zip包解决中文文件名问题。

Global site tag (gtag.js) - Google Analytics