ApacheAnt:从同一build.xml运行2个java程序

yzuktlbb  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(270)

我想用一个(相同的)ant文件运行两个类似的java程序。
我有下面的build.xml

<project name ="Project" 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="implementation1.Main"/>

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

<target name="build">
    <mkdir dir="build"/>
</target>

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

<target name = "compile">
    <mkdir dir = "${classes.dir}"/>
    <javac srcdir="." destdir="${classes.dir}" includeantruntime="false"/>
</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" spawn="true" >
    </java>
</target>

在my build.xml所在的目录中,我有一个“src”文件夹。在路径./src/implementation1/i中,我的项目有一个.java文件,implementation1文件夹中有一个单独的主文件。当我在我的文件夹中运行ant时,它就工作了。
但是,我的项目还有另一个(可选)实现,将其命名为projectalt.java,并存储在文件夹./src/implementation2中。
问题1:当我用src中的folderimplementation2运行ant时,会出现很多错误。如果我删除文件夹,蚂蚁就可以正常工作。
问题2:如何设置第一个实现1然后运行第二个实现?
我已经说得有点清楚了。提前谢谢。

t2a7ltrp

t2a7ltrp1#

最后,我求助于在eclipse中创建类似的包结构,jar现在创建了2个jar,每个jar都有2个不同的主类,每个主类由各自的run调用运行。

相关问题