使用ant脚本编译库

时间:2013-12-17 12:27:52

标签: java ant jar import compilation

我创建了包(项目)Point,其中包含类SquareRectanglePointCircleLine。它们是带有用于创建所述对象的构造函数的简单类。 从主要点开始,你可以这样称呼它们:

Point p1 = new Point(0,3);

我应该编写一个程序,要求用户选择他想要创建的对象并设置其几何,我只能将我的Point包用作库。

1)创建simple-graphics.jar库。 我删除了Point包中的main方法,并设法从我的simple-graphics.jar包中生成Point个可执行.jar文件。

2)我被要求创建一些ant脚本,从其源文件编译这个库并生成.jar文件,但是,我不知道如何做到这一点,如果我还没有在1)中完成它,教程蚂蚁脚本对我来说不是很清楚。我想我应该通过在NetBeans中选择produce .jar选项并在某个地方使用这个ant脚本来实现两种方式。

3)我应该能够运行由{2}生成的.jar文件使用java -jar simple-graphics.jar我如何在NetBeans中执行此操作,还是应该使用cmd?我在W7。

编辑: 谢谢你的脚本,看看它我绝对不能写出所有这些。

如何在我的程序中使用此库?已解决 - 像这样:

package simpleapp;

import point;

public class SimpleApp{



  public static void main(String [] args){


     //Please press 1 to create Point
     //Please specify x and y axis:
     //i will select the type of object and create it
     //Object o = new whichObject(1)(x,y); 

  }
}

Point包中的Point类,其他类非常相似:

package point;

public class Point{

 double x;
 double y;

 public Point(double a, double b){
  x = a;
  y = b;
 }

 public Point(){
  x = 0;
  y = 0;
 }

 public double distance(Point p){
   return Math.sqrt((p.x - x) * (p.x - x) + (p.y - y) * (p.y-y));
 }
}

1 个答案:

答案 0 :(得分:0)

这是一个非常基本的Ant脚本(build.xml),用于将Java文件编译为类文件并将其打包到JAR文件中,假设您的Java源文件位于子目录src中。请注意,这只是一个起点。

<project name="Point-Library" default="build">

  <property name="src.dir" value="src" />
  <property name="build.dir" value="build" />
  <property name="jar.name" value="simple-graphics.jar" />

  <target name="build" depends="prepare, compile, jar" />

  <target name="prepare" description="Creates the build folder">
    <mkdir dir="${build.dir}" />
  </target>

  <target name="compile" description="Compiles the Java source files">
    <javac srcdir="${src.dir}" destdir="${build.dir}" />
  </target>

  <target name="jar" description="Packs the compiled Java classes into a JAR file">
    <jar basedir="${build.dir}" destfile="${jar.name}" />
  </target>

</project>

但是你应该先阅读offical Ant manual来理解这些概念。

要使用生成的JAR文件,您必须将其添加到类路径(您已经使用过)。 然后,您可以导入包point

package simpleapp;

import point; // <---

public class SimpleApp{



  public static void main(String [] args){


     //Please press 1 to create Point
     //Please specify x and y axis:
     //i will select the type of object and create it
     //Object o = new whichObject(1)(x,y); 

  }
}

使用point类的客户端代码,无论其源代码是项目的一部分,还是只导入包含point类文件的JAR文件,都没有区别。