私のbuild.xmlファイルには、次の行があります。
<property environment="env"/>
<echo message="Java_HOME is set to = ${env.Java_HOME}" />
一部のマシンでは、これは印刷されます
"Java_HOME is set to = /usr/jdk1.6"
しかし、他のいくつかでは、これを印刷します
"Java_HOME is set to = ${env.Java_HOME}"
誰がこれを引き起こすのかを知っていますか?
ありがとう
このメッセージは、Antがプロパティenv.Java_HOME
を解決できなかったことを示しています。これは、そのマシンで環境変数Java_HOME
が設定されていなかったことを意味します。
which ant
またはtype ant
を実行することで、実際のant
コマンドが存在するシステム(UNIXの場合)を通常見つけることができます。その場所を見ると、通常は$ANT_HOME
ディレクトリの下の実際のant
コマンドへのリンクであることがわかります。
このスクリプトを見てください。それらの多くは、$ANT_HOME
と$Java_HOME
がデフォルトで環境に設定されていない場合、これらが存在する場所を正確に特定しようとするだけです。
ant
シェルスクリプトに表示されないものは次のとおりです。
EXPORT Java_HOME
そのため、$Java_HOME
がant
スクリプト内で設定されていても、環境にエクスポートされることはありません(誰かがant
シェルスクリプトを変更していない限り] . If an environment variable is not exported, it is unavailable to child processes -- like the
Javachild process running your
ant `プロセス。
したがって、ant
が実行される前に$Java_HOME
が設定されていないマシンを使用している場合は、ビルドスクリプトで使用できません。
ただし、AntとJava(AntはJavaプロセス)であるため)は、使用できるデフォルトのプロパティをすべてセットアップします。Antを実行すると、 独自の組み込みプロパティ${ant.home}
などを含みます。また、Javaが実行されると、Javaも設定されます Javaプロパティ の完全なリストは${Java.home}
のようになります。
したがって、Java_HOMEディレクトリの場所を本当に知る必要がある場合は、環境変数${Java.home}
に依存せず、プロパティ$Java_HOME
を使用してください。
これらのプロパティのリストを取得するには、次のAntビルドファイルを実行します。
<project>
<echoproperties/>
</project>