web-dev-qa-db-fra.com

Comment changer Java_HOME pour ant?

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/jreecho $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
29
Eugene M

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

11
Nils Weinander

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.

6
TofuBeer

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é.

5
klana

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.

5
laz

Il y a 2 façons de changer le compilateur:

  • export Java_HOME=/path/to/jdk avant de commencer Ant.
  • Définir <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.

3

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

3
avi

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.

3
Niranjan Sarvi

Lorsque vous utilisez Bash, essayez ceci:

$ export Java_HOME=/usr/Tomcat/jre
1
cdecker

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.

http://ant.Apache.org/

1
nbeyer

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.

1
stolsvik

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
0
Alex

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"

0
PropellerHead

essayez avec ceci:

/usr/sbin/update-alternatives --config Java
0
jacktrade