java - 如何在不设置任何环境变量的情况下运行 `ant` 构建脚本?

标签 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

我可以在不安装 Java 和设置任何环境变量的情况下运行 ant 构建脚本吗?我可以在本地为 ant 指定 JAVA_HOMEbuild.xml 中,以便 ant 可以从 C:\buildscript_required_files_v2 获取引用文件夹?

最佳答案

您的问题与 *_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.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%

关于java - 如何在不设置任何环境变量的情况下运行 `ant` 构建脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15928331/

相关文章:

Java,枚举 : (short) - someNumber

c++ - GCC 和 binutils build - C 编译器无法创建可执行文件

android - 我想自定义构建过程,同时仍然使用 Android Eclipse ADT 插件

build - 团队构建 - 获取工作空间 - 从特定路径获取最新信息,而不是所有内容

java - Mybatis : "less than" issue in Select annotations

java - 从类中删除字段并更新现有的序列化文件

java - 如何关闭 Ant 控制台中 hbm2ddl 的大部分输出?

scripting - 如何检查是否在 ant 脚本中设置了 dos 环境属性

ant - 如何告诉 ant 构建文件将 bin 目录中的所有文件递归添加到 jarfile 中?

java - 计数时数组越界[正确]