`

将一个简单的类(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 会得到各个任务的描述
分享到:
评论

相关推荐

    使用ant编译打包应用程序

    这个示例展示了如何使用Apache Ant工具来编译、打包和运行一个简单的Java应用程序。Ant是一个基于XML的构建工具,它允许开发者定义任务来自动化构建过程,如编译源代码、创建JAR文件、运行测试等。 首先,我们来看...

    Sample11 Source.rar

    标题“Sample11 Source.rar”和描述中的信息都指向一个名为“Sample11 Source.rar”的压缩文件,这通常意味着该文件包含的是一个源代码或项目的资源集合。在IT行业中,"Source"一词通常指的是原始代码,即程序员编写...

    Jetty Sample

    Jetty Sample是一个示例项目,它展示了如何使用Jetty服务器来构建和运行Web应用程序。Jetty是一款开源的、轻量级的Java Web服务器和Servlet容器,广泛用于开发、测试和部署Web应用程序。在这个压缩包中,我们很可能...

    crawler4j.sample

    【标题】"crawler4j.sample" 是一个基于crawler4j库的网络爬虫示例程序。这个项目旨在帮助开发者理解如何使用crawler4j来构建自己的网络爬虫,从而抓取和处理网页数据。 【描述】"crawler4j文件包,网络爬虫案例...

    gradle-sample

    2. **--tests**:这是一个参数,用于指定要运行的特定测试类或方法。在这个例子中,"some.TestClass"指的是项目中名为"some.TestClass"的测试类。这允许开发者针对某个测试进行调试或性能分析。 了解这些基本命令后...

    VST插件开发工具包

    6. **打包与测试**:编译并打包成VST插件格式(.dll或.component),然后在各种宿主软件中进行测试,确保兼容性和功能正确性。 **VST 3.x的新特性** VST 3.x引入了许多新特性,以提高性能和互操作性: 1. **多...

    使用SpringBoot与Dubbo搭建分布式服务指南.docx

    4. **编译与发布**:将`dubbo-interface`项目打包并部署到服务提供者的类路径下,以便其他模块能够找到并引用。 接下来,我们将继续探讨如何创建服务提供者(Provider)和服务消费者(Consumer),以及如何配置...

    applet动画之溜马

    本资源“applet动画之溜马”就是一个典型的Java Applet示例,它展示了一个动态的马在移动的动画效果,同时结合了声音元素,提升了用户体验。 首先,我们要理解Java Applet的基本概念。Java Applet是在Java虚拟机...

    二十三种设计模式【PDF版】

    就是将类用树形结构组合成一个单位.你向别人介绍你是某单位,你是单位中的一个元素,别人和你做买卖,相当于 和单位做买卖。文章中还对 Jive再进行了剖析。 设计模式之 Decorator(装饰器) Decorator 是个油漆工,给...

    BGABanner-master

    【BGABanner-master】是一个基于Android平台的开源项目,主要目标是提供一个高效、易用且功能丰富的轮播图库。这个项目由开发者BGA(Best Gateway for Android)创建,旨在帮助Android应用开发者快速实现各种样式的...

    java6.0源码-DB2JDBCSample:使用JT400JDBCDriver访问DB2示例

    JT400 是一个开源项目,提供了一个纯 Java 实现的 JDBC 驱动,使得开发者无需安装额外的客户端软件就能与 IBM i 系统进行通信。 1. **JT400JDBCDriver 简介** JT400JDBCDriver 是一个基于 Java 的 JDBC 驱动,它...

    java-ui-factory-sample:使用java-ui-factory的样本项目

    总的来说,`java-ui-factory-sample` 项目是一个学习和实践Java UI Factory模式的良好资源,通过分析和运行此项目,开发者可以深入理解如何在实际项目中有效地利用这一设计模式,提升UI开发的效率和质量。

    Tinker 热修复demo

    【Tinker 热修复demo】是一个针对Android应用的热修复技术实践,旨在解决应用程序运行时出现的bug,而无需用户下载新版本。Tinker是由腾讯开源的一个Android热补丁框架,它允许开发者在应用发布后对应用进行修复和...

    secondDevelpment_new.rar

    它通常包含插件管理系统,用于动态加载、卸载插件,并提供一个稳定的运行环境。 3. **插件实现(Plugin Implementations)**:这些是根据插件接口编写的实际代码,提供了特定的功能。在"secondDevelopment_new"中,...

    Ant 语法介绍txt版

    例如,下面是一个简单的`build.xml`示例,展示了如何使用`&lt;target&gt;`和`depends`属性: ```xml &lt;project name="SampleProject" default="all"&gt; &lt;!-- 初始化项目 --&gt; &lt;!-- 编译源代码 --&gt; &lt;!-- 运行...

    iReport-JasperReports报表开发指南

    iReport是一个开源项目,它使用JasperReports来创建复杂的报表效果。它100%使用Java语言编写。iReport提供了一个可视化的报表设计环境,使得用户能够快速地创建出JasperReports报表。 #### 2. Getting started 在...

    awesome-blazor:Blazor的资源,Blazor是一个使用C#Razor和HTML的.NET Web框架,该框架在带有WebAssembly的浏览器中运行

    Blazor 应用程序在用户的浏览器内运行,利用 WebAssembly 技术将 .NET 运行时和代码编译为 Web 可执行格式,实现了高性能的前端开发体验。 **Razor 模板语法** Razor 是一种轻量级的视图引擎,结合了 HTML、CSS 和...

    axis2 webservice开发指南.pdf

    **Axis2** 是Apache的一个开源项目,旨在提供一个高性能、灵活且可扩展的Web服务框架,用于实现基于SOAP协议的Web服务。与前代产品**Axis1.x**相比,Axis2在架构上进行了优化,提供了更好的性能和更丰富的功能。 ##...

    PaizaTemplate:Paiza Java 模板

    总结来说,"Paiza Java 模板"是一个针对Paiza编程技能检查的Java项目模板,它要求开发者熟悉Java SE 8的特性和用法,掌握JUnit进行单元测试,了解如何从Git仓库克隆项目并在本地进行构建和测试。这个模板旨在提供一...

Global site tag (gtag.js) - Google Analytics