簡體   English   中英

簡單的Java Ant構建問題

[英]Simple Java Ant build problem

對Ant來說是全新的,我只有一個簡單的問題。 我運行螞蟻與一個輸入文件: ant -Dargs="input.txt" run ,但它說,它無法找到input.txt (沒有這樣的文件或目錄)。 我在srcbin上方的同一目錄中有build.xml文件和input.txt 這是我的build.xml文件,我缺少什么嗎?

<project name="Project" default="compile" basedir=".">

  <description>
    A build file for a project
  </description>

  <!-- global properties for this build file -->
  <property name="source.dir" location="src"/>
  <property name="build.dir" location="bin"/>
  <property name="doc.dir" location="doc"/>
  <property name="main.class" value="proj.ProjMain"/>

  <!-- set up some directories used by this project -->
  <target name="init" description="setup project directories">
    <mkdir dir="${build.dir}"/>
    <mkdir dir="${doc.dir}"/>
  </target>

  <!-- Compile the java code in ${src.dir} into ${build.dir} -->
  <target name="compile" depends="init" description="compile java sources">
    <javac srcdir="${source.dir}" destdir="${build.dir}"/>
  </target>

  <!-- execute the program with the fully qualified name in ${build.dir} -->
  <target name="run" description="run the project">
    <java dir="${build.dir}" classname="${main.class}" fork="yes">
        <arg line="${args}"/>
    </java>
  </target>

  <!-- Delete the build & doc directories and Emacs backup (*~) files -->
  <target name="clean" description="tidy up the workspace">
    <delete dir="${build.dir}"/>
    <delete dir="${doc.dir}"/>
    <delete>
      <fileset defaultexcludes="no" dir="${source.dir}" includes="**/*~"/>
    </delete>
  </target>

  <!-- Generate javadocs for current project into ${doc.dir} -->
  <target name="doc" depends="init" description="generate documentation">
    <javadoc sourcepath="${source.dir}" destdir="${doc.dir}"/>
  </target>

</project>

ant -Dargs="input.txt" run命令ant -Dargs="input.txt" run將運行以下目標:

  <!-- execute the program with the fully qualified name in ${build.dir} -->
  <target name="run" description="run the project">
    <java dir="${build.dir}" classname="${main.class}" fork="yes">
        <arg line="${args}"/>
    </java>
  </target>

如注釋中所述,此目標 ${build.dir}目錄(這里為bin )執行Java程序,並將命令行參數傳遞給它。 因此,如果input.txtbin上方,則應運行:

$ ant -Dargs="../input.txt" run

當未指定絕對路徑時, 項目標記中的basedir參數指示從中獲取構建文件引用的目錄。 因此,您的input.txt應該對於您的basedir或者您應該提及您的input.txt的絕對路徑。

在您的情況下,basedir指的是您的構建文件所在的目錄。 因此,如果input.txt與構建文件位於同一目錄中,則應該可以正常工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM