ant 学习(2)-ant开发java程序,buile.xml文件分离

简介:

用Ant 开发java 程序----以及将build.xml文件拆分

用Ant 开发java 程序,以HelloWord 为例
1> 本次实例的目录结构:
c:\ant_test 主目录
      ---- \src 源程序目录

      ----build.xml
首先在 c 盘创建ant_test 目录和src 子目录。

2> 在src 子目录下创建HelloWorld.java 文件,内容如下:


 public class HelloWorld
{
public static void main(String args[])
{
System.out.println("Hello World!");
}
}


3> 在test 主目录下创建build.xml 文件,内容如下:


<?xml version="1.0"?>
<project default="build" basedir=".">
   <property name="appname" value="HelloWorld" />
   <property name="base" value="C:\ant_test" />
   <property name="src" value="src" />
   <property name="build" value="classes" />
   <property name="myclasspath" value="${base}\${build}" />  
   <target name="build">
      <mkdir dir="${build}" />
      <javac srcdir="${src}" destdir="${build}" includeantruntime="on">
      <include name="**/*.java" />
     </javac>
   </target>
  
  <target name="run" depends="build">
    <exec executable="java">
    <arg line=" -classpath ${myclasspath} ${appname}" />
    </exec>
  </target>
  
  <target name="clean">
    <delete includeEmptyDirs="true">
    <fileset dir="${build}" />
    </delete>
  </target>
</project>

   4> 在test 目录下运行ant 查看执行结果。
运行 ant run 和ant clean 看看会怎么样


ant run

ant 学习(2) - 流口水的小猪 - 轨迹

 

ant clean  

ant 学习(2) - 流口水的小猪 - 轨迹

此处我实验了以下,如果将clean的target中task的方法改为

 <delete dir="${build}"/>

 则运行ant clean

ant 学习(2) - 流口水的小猪 - 轨迹

 

下面介绍为了提高程序的可移植性,我们将property 分离出来组成build.properties 文件。新的build.xml 文件和build.properties 文件内容如下:

   

 新build.xml文件
<?xml version="1.0"?>
<project default="build" basedir=".">
 
 <property file="build.properties" />
  
  <target name="build">
    <mkdir dir="${build}" />
    <javac srcdir="${src}" destdir="${build}" includeantruntime="on">
    <include name="**/*.java" />
    </javac>
  </target>
  
  <target name="run" depends="build">
    <exec executable="java">
    <arg line=" -classpath ${myclasspath} ${appname}" />
    </exec>
  </target>
  
  <target name="clean">
    <delete includeEmptyDirs="true">
    <fileset dir="${build}" />
    </delete>
  </target>
</project>
 build.properties 文件
appname=HelloWorld
src=src
build=classes
myclasspath=${basedir}\\${build}

 同样可以运行ant run 和 ant clean命令



本文转自 326647452 51CTO博客,原文链接:http://blog.51cto.com/svsky/2074008,如需转载请自行联系原作者

相关文章
|
9天前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
19天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
101 13
|
24天前
|
算法 Java API
如何使用Java开发获得淘宝商品描述API接口?
本文详细介绍如何使用Java开发调用淘宝商品描述API接口,涵盖从注册淘宝开放平台账号、阅读平台规则、创建应用并申请接口权限,到安装开发工具、配置开发环境、获取访问令牌,以及具体的Java代码实现和注意事项。通过遵循这些步骤,开发者可以高效地获取商品详情、描述及图片等信息,为项目和业务增添价值。
56 10
|
18天前
|
前端开发 Java 测试技术
java日常开发中如何写出优雅的好维护的代码
代码可读性太差,实际是给团队后续开发中埋坑,优化在平时,没有那个团队会说我专门给你一个月来优化之前的代码,所以在日常开发中就要多注意可读性问题,不要写出几天之后自己都看不懂的代码。
54 2
|
8天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者
|
10天前
|
安全 Java Kotlin
Java多线程——synchronized、volatile 保障可见性
Java多线程中,`synchronized` 和 `volatile` 关键字用于保障可见性。`synchronized` 保证原子性、可见性和有序性,通过锁机制确保线程安全;`volatile` 仅保证可见性和有序性,不保证原子性。代码示例展示了如何使用 `synchronized` 和 `volatile` 解决主线程无法感知子线程修改共享变量的问题。总结:`volatile` 确保不同线程对共享变量操作的可见性,使一个线程修改后,其他线程能立即看到最新值。
|
10天前
|
消息中间件 缓存 安全
Java多线程是什么
Java多线程简介:本文介绍了Java中常见的线程池类型,包括`newCachedThreadPool`(适用于短期异步任务)、`newFixedThreadPool`(适用于固定数量的长期任务)、`newScheduledThreadPool`(支持定时和周期性任务)以及`newSingleThreadExecutor`(保证任务顺序执行)。同时,文章还讲解了Java中的锁机制,如`synchronized`关键字、CAS操作及其实现方式,并详细描述了可重入锁`ReentrantLock`和读写锁`ReadWriteLock`的工作原理与应用场景。
|
10天前
|
安全 Java 编译器
深入理解Java中synchronized三种使用方式:助您写出线程安全的代码
`synchronized` 是 Java 中的关键字,用于实现线程同步,确保多个线程互斥访问共享资源。它通过内置的监视器锁机制,防止多个线程同时执行被 `synchronized` 修饰的方法或代码块。`synchronized` 可以修饰非静态方法、静态方法和代码块,分别锁定实例对象、类对象或指定的对象。其底层原理基于 JVM 的指令和对象的监视器,JDK 1.6 后引入了偏向锁、轻量级锁等优化措施,提高了性能。
33 3
|
10天前
|
存储 安全 Java
Java多线程编程秘籍:各种方案一网打尽,不要错过!
Java 中实现多线程的方式主要有四种:继承 Thread 类、实现 Runnable 接口、实现 Callable 接口和使用线程池。每种方式各有优缺点,适用于不同的场景。继承 Thread 类最简单,实现 Runnable 接口更灵活,Callable 接口支持返回结果,线程池则便于管理和复用线程。实际应用中可根据需求选择合适的方式。此外,还介绍了多线程相关的常见面试问题及答案,涵盖线程概念、线程安全、线程池等知识点。
91 2