0

我想在不安装和设置任何环境变量(如, & )ant的情况下运行构建脚本。JavapathJAVA_HOMEANT_HOME

我已将已安装的Jdk-1.7u17,Jre-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的情况下运行构建脚本吗?Java我可以JAVA_HOME在本地指定蚂蚁到build.xml这样ant可以从C:\buildscript_required_files_v2文件夹中获取参考吗?

4

1 回答 1

2

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

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

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

由于您没有此类变量,因此您需要声明:

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

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

更新:您可以编写自己的 bat 文件,让 Windows 知道在哪里找到.exe文件.bat。只需在记事本文本文件中创建名为my-ant.batAnd 的地方如下:

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%
于 2013-04-10T14:21:40.157 回答