J'ai installé deux jdks - jdk 1.5 et jdk 1.8 . J'ai le fichier de configuration Ant build.xml suivant:
<target name="compileCustomSrc">
<javac srcdir="src" destdir="build/classes" source="1.5" target="1.5" >
<classpath>
<fileset dir="C:/lib/">
<include name="*.jar" />
</fileset>
</classpath>
</javac>
</target>
Avant d'installer jdk1.8, Ant appelé à partir d'Eclipse a compilé avec succès toutes les sources. Mais maintenant, j'ai le message d'erreur suivant:
Classe non trouvée: javac1.8
Mon Java_HOME et JRE_HOME:
Java_HOME = C:\Program Files (x86)\Java\jdk1.5.0_16 JRE_HOME = C:\Program Files (x86)\Java\jre1.5.0_16
et mis dans Eclipse JRE à 1,5. Est-ce que Java 1.8 définit certaines configurations lors de l'installation?
-Dbuild.compiler=javac1.7
Pour faire suite à la réponse de Kristian Holdhus (marquée comme correcte), vous pouvez utiliser l'attribut compiler
dans la tâche Ant javac . Le réglage de compiler="modern"
devrait être à la fois compatible avec les versions antérieures (1.3) et antérieure.
Cela évite de devoir définir la propriété Java System nommée build.compiler
. Ce n'est qu'en l'absence d'une définition explicite de l'attribut compiler
sur la tâche javac
que Ant utilisera la valeur de build.compiler
comme solution de secours.
J'ai eu le même problème. J'avais Java_HOME et JRE_HOME définis correctement. J'ai aussi eu Ant> 1.9.
Ce que j'ai fait pour résoudre ce problème est d'aller dans Eclipse vers Fenêtre -> Préférences. Développez Ant et sélectionnez Runtime. Par défaut, l'onglet Classpath doit être sélectionné et sur le côté droit, un bouton appelé "Ant Home". Cliquez sur ce bouton et vérifiez qu'il est bien dirigé vers votre dossier Ant.
Java_HOME = C:\Program Files (x86)\Java\jdk1.5.0_16
JRE_HOME = C:\Program Files (x86)\Java\jre1.5.0_16
Votre Java_HOME et JRE_HOME sont définis sur l'installation de Java 1.5; par conséquent, les fichiers binaires 1.8 (tels que javac
) ne sont pas trouvés . Définissez-les sur l'installation de Java 1.8 et tout devrait bien se passer.
Je l'ai essayé avec Eclise et j'ai eu la même erreur Classe non trouvée: javac1.8
J'ai vérifié la version ANT sur mon système
> ant -version
Apache Ant (TM) version 1.9.6 compilée le 29 juin 2015
Lorsque j'ai essayé d'exécuter le fichier build.xml à partir de la commande Invite, cela a fonctionné… .. Ensuite, j'ai vérifié que dans Eclipse, cela faisait référence à l'ancienne version de ANT.
J'ai simplement édité le chemin ANT HOME dans Eclipse et cela a fonctionné à partir d'ici aussi. :)
Vous trouverez ci-dessous l'image d'où il faut modifier le chemin ANT dans Eclipse.
Maintenant changez le chemin ANT Home à partir d’ici.
Mettez à jour Ant vers la version 1.9.x en tant que Java 8 incompatible avec les versions Ant moins celle 1.9.
vous pouvez télécharger et décompresser ANT 1.10 sur votre système et essayer de modifier la maison ANT dans Eclipse pour votre projet à la version 1.10. Cela devrait fonctionner, lisez ceci pour plus de détails. http://devops-badal.blogspot.com/2017/02/class-not-found-javac18-issue-while.html
Mettez Ant à jour vers la version 1.9.x en tant que Java 8 incompatible avec les versions Ant inférieures à 1.9 ou après la commande, mettez -Dbuild.compiler = javac1.7, voir ci-dessous:
publication ant -Dbuild.compiler = javac1.7
Parfois, le problème lors de la construction de la guerre via ANT est également lié à la version Java. Les correspondances manquantes dans les fichiers build.properties car build.XML essaie d'utiliser la version Java mentionnée dans la propriété build.compiler
vérifiez si la propriété build.compiler est identique à la version Java prévue.
J'ai essayé toutes les autres solutions, mais aucune n'a fonctionné. J'ai finalement trouvé une approche qui a fonctionné pour moi dans Eclipse:
ant
.Run As | External Tool Configurations
JRE
, choisissez Separate JRE: Java SE7
ou quel que soit le nom de votre Java 7, puis cliquez sur Apply
puis sur Run
.Votre tâche de fourmi sera exécutée et se construira correctement!
Vous pouvez télécharger une version plus récente d’Eclipse, qui inclut une version plus récente de Ant dans le répertoire plugins. Ensuite, copiez le fichier Ant dans le répertoire de plug-in de l'ancien Eclipse. Eclipse pointera automatiquement sur la nouvelle version de Ant. Cela a fonctionné pour Kepler plus âgé avec le plus récent Mars2 pour moi.