如何运行`ant` build-script而不设置任何环境变量?

时间:2013-04-10 14:13:01

标签: java ant build jar build-process

我想运行ant构建脚本而不安装Java并设置任何环境变量,例如pathJAVA_HOME& ANT_HOME到环境变量。

我已将已安装的Jdk-1.7u17Jre-1.7u17apache-ant-1.9.0文件夹从一台计算机复制到另一台计算机上C:\buildscript_required_files_v2文件夹。

现在我有一个窗口批处理文件,它进入build.xml所在的路径并运行ant

cd VersionBuild
C:\buildscript_required_files_v2\apache-ant-1.9.0\bin\ant

build.xml符合Java类并创建一个Jar文件。

<project name="VersionBuild"  default="clean" basedir=".">
    <description>
        simple example build file
    </description>

  <!-- set global properties for this build -->


  <target name="init">
    <!-- Create the time stamp -->
    <tstamp/>
    <!-- Create the build directory structure used by compile -->


 </target>

 <target name="CompilingBuildversion" depends="init"
        description="compile the source " >
    <!-- Compile the java code from ${src} into ${build} -->
    <C:\buildscript_required_files_v2\java\jdk64\bin\javac.exe srcdir="." destdir="."/>
  </target>

  <target name="Creating jar" depends="CompilingBuildversion">
      <jar jarfile="VersionBuild.jar"  basedir="."/>
 </target>    


 <target name="clean" depends="Creating jar">

 </target>

</project>

当我运行该bach文件时,我收到以下异常 -

Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\li
b\tools.jar

我可以运行ant build-script而无需安装Java并设置任何环境变量吗?我可以在JAVA_HOME本地为蚂蚁指定build.xml,因此ant可以从C:\buildscript_required_files_v2文件夹中获取参考吗?

1 个答案:

答案 0 :(得分:2)

你的问题与* _HOME变量无关,但我先回答你的问题。 是的,你可以。

只需将PATH变量配置为(1)dir,其中java.exe所在的位置(2)ant.bat所在的位置。 如果* _HOME定义了路径可以写:

PATH=...;%JAVA_HOME%\bin;%ANT_HOME%

由于您没有这样的变量,您需要声明:

PATH=...;C:\Program Files\Java\bin;c:\ant\bin

但实际上你在蚂蚁需要JDK时尝试使用JRE的问题。只需从oracle网站下载。 tools.jar是JDK的一部分,但不是JRE。

<强>更新: 您可以编写自己的bat文件,让Windows知道在哪里找到.exe.bat文件。只需在名为my-ant.bat的记事本文本文件中创建,然后放在那里:

set JAVA_HOME=C:\buildscript_required_files_v2\java\jdk64
set PATH=%PATH%;%JAVA_HOME%\bin;C:\buildscript_required_files_v2\apache-ant-1.9.0\bin
rem ** Now we invoke ant **
ant 

显然你想用命令行参数进行操作。这就是为什么而不是使用下一行ant行:

set my_ant_start=
:setupArgs
if ""%1""=="""" goto doneStart
set my_ant_start=%my_ant_start% %1
shift
goto setupArgs
:doneStart
rem ** Now we invoke ant **
ant %my_ant_start%