web-dev-qa-db-fra.com

classe javac1.8 non trouvée

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?

79
kamilz
-Dbuild.compiler=javac1.7
169
Kristian Holdhus

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.

14
Chuck Daniels

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.

7
Mike Kuenzi
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.

3
Toni Toni Chopper

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.

  1. Faites un clic droit sur le fichier build.xml
  2. Courir comme
  3. Configurations d'outils externes
  4. Sélectionnez l'onglet classpath

Maintenant changez le chemin ANT Home à partir d’ici.

 enter image description here

2
KulDeep

Mettez à jour Ant vers la version 1.9.x en tant que Java 8 incompatible avec les versions Ant moins celle 1.9.

1
Neha Priya

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

0
Badal Singh

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

0
linhadiretalipe

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.

0
SoSufi

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:

  • Cliquez avec le bouton droit sur le nom de la tâche ant, par exemple. "compileCustomSrc" dans la fenêtre ant.
  • Choisissez Run As | External Tool Configurations
  • Ensuite, dans l’onglet 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!

0
Brad Parks

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.

0
techron