${env.JAVA_HOME} introuvable - Ant
Dans mon build.xml fichier, j'ai ces lignes:
<property environment="env"/>
<echo message="JAVA_HOME is set to = ${env.JAVA_HOME}" />
Sur certaines machines, ce serait d'imprimer
"JAVA_HOME is set to = /usr/jdk1.6"
Mais sur d'autres, il serait d'imprimer ce
"JAVA_HOME is set to = ${env.JAVA_HOME}"
Personne ne sait ce qui peut provoquer cela?
Grâce
OriginalL'auteur One Two Three | 2013-07-10
Vous devez vous connecter pour publier un commentaire.
Le message vous indique que la Fourmi n'a pas été en mesure de résoudre la propriété
env.JAVA_HOME
; cela signifie que la variable d'environnementJAVA_HOME
n'a pas été mis dans la machine.Fourmi ne vous oblige pas à définir
JAVA_HOME
(comme vous l'avez compris parce que vous étiez en mesure d'exécuter votre fichier de build, même sur les machines oùJAVA_HOME
n'a pas été définie)Ok cela fait sens maintenant. Merci
OriginalL'auteur smooth reggae
Vous pouvez généralement trouver sur votre système (si vous êtes Unix) où le réel
ant
commande vies en effectuant unewhich ant
outype ant
. Si vous regardez à cet endroit, vous aurez généralement voir que c'est un lien vers leant
de commande en vertu de la$ANT_HOME
répertoire.Prendre un coup d'oeil à ce script. Beaucoup de cela est juste d'essayer de déterminer exactement où
$ANT_HOME
et$JAVA_HOME
résident, s'ils ne sont pas défini par défaut dans l'environnement.Ce que vous ne voyez pas dans la
ant
script shell est:Donc, même si
$JAVA_HOME
est définie à l'intérieur de laant
script, il n'est jamais exporté dans l'environnement (à moins que quelqu'un a modifié leant
script shell. If an environment variable is not exported, it is unavailable to child processes -- like the
javachild process running your
ant.Ainsi, si vous êtes sur une machine où
$JAVA_HOME
n'est pas défini avantant
est exécuté, il ne sera pas disponible dans votre script de construction.Cependant, à la fois de Fourmi et Java (parce que la Fourmi est un processus Java) installation de toute une série de propriétés par défaut que vous pouvez utiliser. Lorsque Ant l'exécute ensembles c'est intégré dans les propriétés qui comprennent des choses comme
${ant.home}
. Et, lorsque Java est exécuté, Java établit également une liste complète de Les Propriétés Java comme${java.home}
.Donc, si vous avez vraiment besoin de savoir où votre JAVA_HOME répertoire se trouve, utilisez la propriété
${java.home}
et dépendent pas de la variable d'environnement$JAVA_HOME
.Si vous souhaitez obtenir une liste de ces propriétés, exécuter le fichier Ant:
eh bien, c'est tout simplement faux.
${java.home}
est certainement de ne pas dire où JAVA_HOME est, seule la variable d'environnement diront que.${java.home}
dirai où JRE utilisé dans l'exécution, ce qui est une chose différente.OriginalL'auteur David W.