Je fais du travail Java sur un serveur de classe où je n'ai pas de racine. Chaque fois que j'essaye de compiler en utilisant ant, il pointe vers le mauvais répertoire (/usr/Tomcat
au lieu de /usr/Tomcat/jre
).
Lors de la configuration de nos comptes d’utilisateur, nous avons été priés d’ajouter export Java_HOME=/usr/Tomcat/jre
au fichier .bashrc. Je ne sais pas si cela était censé régler le problème, mais cela ne semble pas.
Alors, comment puis-je modifier la propriété Java_HOME pour ant mais uniquement lorsque je lance ant?
MODIFIER: echo $Java_HOME
pointe sur /usr/Tomcat/jre
echo $Java_HOME\bin
pointe sur /usr/Tomcat/jrebin
Le problème, c’est quand j’exécute normalement et j’obtiens cette erreur:
Unable to locate tools.jar. Expected to find it in /usr/Tomcat/lib/tools.jar
Buildfile: build.xml
compile:
[javac] Compiling 1 source file to /home/ejm244/build/classes
BUILD FAILED
/home/ejm244/build.xml:9: Unable to find a javac compiler;
com.Sun.tools.javac.Main is not on the classpath.
Perhaps Java_HOME does not point to the JDK
Total time: 0 seconds
Vous pouvez créer votre propre script pour exécuter ant, par exemple. nommé ant.sh comme:
#!/bin/sh
Java_HOME=</path/to/jdk>; export Java_HOME
ant $@
puis lancez votre script.
$ chmod 755 ant.sh
$./ant.sh clean compile
ou quelle que soit la cible de la fourmi que vous souhaitez exécuter
Java_HOME doit indiquer où le JDK est installé, pas un JRE.
Donc, si vous tapez ls $ Java_HOME, que voyez-vous? Si vous tapez ls $ Java_HOME/bin/voyez-vous javac?
Si le premier ne fonctionne pas, Java_HOME ne pointe pas vers le bon répertoire . Si le second ne fonctionne pas, vous devez pointer Java_HOME vers un JDK au lieu d'un JRE.
Sur les paramètres de mon ordinateur Windows 7:
Java_HOME = "C:\Programmes\Java\jdk1.6.0_18"
n'a pas fonctionné. Mais le réglage:
Java_HOME = C:\Program Files\Java\jdk1.6.0_18
travaillé.
En examinant le script Shell pour appeler ant, il est possible que la valeur de $ Java_HOME définie pour votre shell dans .bashrc soit remplacée dans les fichiers /etc/ant.conf, $ HOME/.ant/ant.conf et $ ACCUEIL/.antrc. Si vous exécutez bash -x <chemin d'accès au script ant>, il émettra des informations de débogage qui devraient vous aider à localiser le remplacement de $ Java_HOME.
Il y a 2 façons de changer le compilateur:
export Java_HOME=/path/to/jdk
avant de commencer Ant.<javac exectuable="/path/to/javac">
Une autre option serait d’ajouter un tools.jar
respectif au chemin de classe, mais ce chemin est généralement pris si Ant est démarré à partir d’autres outils comme Maven.
Pour plus de détails sur ces options (ou d’autres) permettant de modifier le compilateur Java dans Ant, voir cet article par exemple.
Définissez la variable env: JAVACMD - chemin complet de l'exécutable Java. Utilisez cette option pour appeler une machine virtuelle autre que Java_HOME/bin/Java (.exe).
Référence: http://ant.Apache.org/manual/running.html
Bien que la variable d'environnement Java_HOME
ait été définie correctement, la ant
peut utiliser le JRE configuré dans chaque fichier build.xml ou n'importe quel fichier de construction.
Pour vérifier quelle version du JRE utilisée par la fourmi, cliquez avec le bouton droit de la souris sur le fichier de construction -> sélectionnez la compilation qui affiche les détails des tâches à choisir, etc., sélectionnez le JRE que vous souhaitez utiliser.
Il est conseillé d'utiliser les paramètres de niveau de projet ou simplement au niveau de l'espace de travail.
Lorsque vous utilisez Bash, essayez ceci:
$ export Java_HOME=/usr/Tomcat/jre
Java_HOME doit pointer vers un répertoire JDK si vous essayez de compiler du code. Vérifiez si '/ usr/Tomcat/jre/bin/javac' existe. J'en doute.
Si vous ne disposez pas d'un JDK, vous pouvez le contourner en récupérant la bibliothèque ECJ (compilateur Eclipse) dans «~/.ant/lib» et en ajoutant une propriété système à la ligne de commande pour utiliser ce compilateur - Consultez le manuel Ant pour plus de détails.
Définissez le JRE dans le projet (propriétés du projet -> Chemin de construction Java -> Bibliothèques, généralement la dernière entrée) ou les préférences par défaut globales (Java -> JRE installés) sur un JDK, et non sur un JRE.
Lorsque vous exécutez ant à partir du shell, vous n'avez pas besoin de export Java_HOME
d’abord, ce qui définirait cette variable pour votre shell actuel et toutes les commandes à venir.
user@Host:~# Java_HOME=/path/to/jdk ant targets
Vous devrez changer le chemin Java_HOME pour le répertoire Java SDK au lieu du répertoire Java RE. Sous Windows, vous pouvez le faire en utilisant la commande set dans une invite de commande.
par exemple.
set Java_HOME = "C:\Program Files\Java\jdk1.6.0_14"
essayez avec ceci:
/usr/sbin/update-alternatives --config Java