`

将一个简单的类(Sample)进行编译、打包、运行(传参数)

阅读更多
java源文件:Sample.java
package powerwind;

import javax.swing.*;

public class Sample {
    public static void main(String[] args) throws Exception {
        if (args.length > 0)
            JOptionPane.showMessageDialog(null, args[0]);
        else
            JOptionPane.showMessageDialog(null, "HelloWorld");
    }
}


ant文件:build.xml
注意:encoding="GBK" 设置后才可以有中文注释

<?xml version="1.0" encoding="GBK" ?>
<!-- ===================================== -->
<!-- 周健兴 2006/10/18 -->
<!-- ===================================== -->
<project name="sample" default="run" basedir=".">
    <description>用于学习的简单ant工程文件</description>
    <!--属性设置-->
    <property environment="env" />
    <property file="build.properties" />
    <property name="src.dir" value="${basedir}/src" />
    <property name="java.lib.dir" value="${env.JAVA_HOME}/lib" />
    <property name="build.dir" value="${basedir}/build" />
    <property name="classes.dir" value="${build.dir}/classes" />
    <property name="dist.dir" value="${basedir}/dist" />
    <!-- 基本编译路径设置 -->
    <path id="compile.classpath">
        <fileset dir="${java.lib.dir}">
            <include name="tools.jar" />
        </fileset>
    </path>
    <!-- 运行路径设置 -->
    <path id="run.classpath">
        <path refid="compile.classpath" />
        <pathelement location="${classes.dir}" />
    </path>
    <!-- 排除java源文件的模式集 -->
    <patternset id="no.java">
        <exclude name="**/*.java" />
    </patternset>
    <!-- 初始化,建立目录,复制文件 -->
    <target name="init" description="初始化,建立目录,复制文件">
        <mkdir dir="${classes.dir}" />
        <mkdir dir="${dist.dir}" />
        <copy todir="${classes.dir}">
            <fileset dir="${src.dir}">
                <patternset refid="no.java" />
            </fileset>
        </copy>
    </target>
    <!-- 清理,删除临时目录 -->
    <target name="clean" description="清理,删除临时目录">
        <delete dir="${build.dir}" />
        <delete dir="${dist.dir}" />
        <echo level="info">清理完毕</echo>
    </target>
    <!-- 编译源文件-->
    <target name="compile" depends="init" description="编译源文件">
        <javac srcdir="${src.dir}" destdir="${classes.dir}" source="1.5" target="1.5">
            <classpath refid="compile.classpath" />
        </javac>
    </target>
    <!-- 打包类文件 -->
    <target name="jar" depends="compile" description="打包类文件">
        <jar jarfile="${dist.dir}/${jar.file}" manifest="${src.dir}/${manifest.file}">
            <fileset dir="${classes.dir}" includes="**/*.*" />
        </jar>
    </target>
    <!-- 从打包后jar的文件里运行 -->
    <target name="runjar" depends="jar" description="运行jar">
        <java jar="${dist.dir}/${jar.file}" fork="yes" dir="${basedir}" />
    </target>
    <!-- 运行 -->
    <target name="run" depends="compile" description="运行">
        <java classname="powerwind.Sample" fork="yes" dir="${basedir}">
            <classpath refid="run.classpath" />
            <arg line="${param.msg}" />
        </java>
    </target>
</project>

属性文件:build.properties
manifest.file = manifest.txt
jar.file = sample.jar

列表文件:manifest.txt (最后的回车不能少)
Main-Class: powerwind.Sample


文件结构:
E:\JAVA\SAMPLE
│  build.properties
│  build.xml

└─src
    │  manifest.txt
    │
    └─powerwind
            Sample.java
可以不事先创建manifest.txt 文件,而在build.xml文件中加入一个任务
    <!-- 创建清单文件 -->
    <target name="create.manifest" description="创建清单文件">
        <manifest file="${src.dir}/${manifest.file}">
            <attribute name="Built-By" value="${user.name}" />
            <attribute name="Main-Class" value="powerwind.Sample" />
        </manifest>
    </target>
<!-- 这里的依赖关系加上create.manifest -->
<target name="jar" depends="compile,create.manifest" …>
同样,如果全部属性在build.xml文件中设置,也不用build.properties这个属性文件了。
但是,如果属性较多,放在其它文件中是比较方便的。属性文件可以用XML文件来替代
props.xml 文件
<properties>
    <manifest>
        <file>manifest.txt</file>
    </manifest>
    <jar>
        <file>sample.jar</file>
    </jar>
</properties>

这样,将原来的${manifest.file}改成${properties.manifest.file} ,${jar.file} 改成${properties.jar.file}即可。
当然,加载属性文件的<property file="build.properties" />也要改成<xmlproperty file="props.xml" />

2 操作说明
切换到目录E:\java\sample>,输入 ant -Dparam.msg=你好啊!
如果输入 ant –projecthelp 会得到各个任务的描述
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics