【发布时间】:2014-03-21 00:31:04
【问题描述】:
我有以下情况。
我有一个打包在 jar 文件中的 java 程序。如果我打电话给java -jar myProgramm.jar 一切正常。该文件正在从 build.xml(ant 文件)中读取一些值。此文件位于 myProgramm.jar 所在的同一目录中。
在我们公司,我们将所有内容都包装在 shell 脚本中,以便以一种不受限制的方式调用我们的脚本。
所以我的 shell 脚本 myProgrammWrapper.sh 看起来像这样:
#!bin/bash
java -jar $(cygpath -w ~/path/to/tools/myProgramm.jar) "$@"
有 cygpath 命令是因为 sh 在 cygwin 中执行,否则找不到路径。 "$@" 将参数传递给程序。
以下是问题:
我们的 cygwin 环境已设置为可以从每个目录调用 myProgrammWrapper.sh。但是当然,当我从任何随机位置调用它时,找不到 build.xml。有没有办法在 shell 脚本中引用 build.xml。它位于~/path/to/tools/?
首先我在考虑将构建文件复制到当前目录,然后将其删除。这工作正常,但有一个基本缺陷。我们正在大量使用 ant 并拥有 build.xml 文件。因此,如果有人会在已经存在 build.xml 文件的目录中执行 myProgrammWrapper.sh。它将被覆盖。
也许这个问题可以从 Java 端解决。任何想法和意见表示赞赏。
【问题讨论】: