Ant: Classe introuvable: javac1. 8

J'essaie de construire un projet en utilisant Ant dans eclipse. J'ai cliqué droit sur construire.xml > exécuter en tant que > Ant Build. Cependant, je reçois l'erreur suivante:

BUILD FAILED
C:UsersDavideclipsetest-projectbuild.xml:26: Class not found: javac1.8

Et aussi un avertissement:

compile:
[javac] C:UsersDavideclipsetest-projectbuild.xml:26: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds

Comme je l'ai lu dans d'autres messages que cela pourrait être dû à une version ant trop ancienne ou ne pas avoir correctement défini les variables d'environnement, voici toutes les informations:

C:>java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

C:>ant -version
Apache Ant(TM) version 1.9.3 compiled on December 23 2013

C:>echo %JAVA_HOME%
C:Program FilesJavajdk1.8.0_05

C:>echo %JRE_HOME%
C:Program FilesJavajre8

Modifier: Voici l'ensemble de la construction.xml, ligne 26 est la balise javac:

<?xml version="1.0"?>
<project name="test-project" default="main" basedir=".">
  <!-- Sets variables which can later be used. -->
  <!-- The value of a property is accessed via ${} -->
  <property name="src.dir" location="src" />
  <property name="build.dir" location="bin" />
  <property name="dist.dir" location="dist" />
  <property name="docs.dir" location="docs" />

  <!-- Deletes the existing build, docs and dist directory-->
  <target name="clean">
    <delete dir="${build.dir}" />
    <delete dir="${docs.dir}" />
    <delete dir="${dist.dir}" />
  </target>

  <!-- Creates the  build, docs and dist directory-->
  <target name="makedir">
    <mkdir dir="${build.dir}" />
    <mkdir dir="${docs.dir}" />
    <mkdir dir="${dist.dir}" />
  </target>

  <!-- Compiles the java code (including the usage of library for JUnit -->
  <target name="compile" depends="clean, makedir">
    <javac srcdir="${src.dir}" destdir="${build.dir}">
    </javac>
  </target>

  <!-- Creates Javadoc -->
  <target name="docs" depends="compile">
    <javadoc packagenames="src" sourcepath="${src.dir}" destdir="${docs.dir}">
      <!-- Define which files / directory should get included, we include all -->
       <fileset dir="${src.dir}">
                <include name="**" />
           </fileset>
    </javadoc>
  </target>

  <!--Creates the deployable jar file  -->
  <target name="jar" depends="compile">
    <jar destfile="${dist.dir}test-project1.jar" basedir="${build.dir}">
      <manifest>
        <attribute name="Main-Class" value="test.Main" />
      </manifest>
    </jar>
  </target>

  <target name="main" depends="compile, jar, docs">
    <description>Main target</description>
  </target>

</project> 
25
demandé sur David_Z 2014-05-03 13:31:44

6 réponses

La version D'Ant fournie avec votre version D'Eclipse n'est pas compatible avec Java 1.8.

Accédez à la page de téléchargement Ant , et extrayez la dernière version quelque part approprié sur votre système de fichiers.

Dans Eclipse, accédez à Window > Preferences > Ant > Runtime, cliquez sur le bouton Ant Home... et sélectionnez l'emplacement dans lequel vous avez extrait La Fourmi nouvellement téléchargée.

30
répondu studro 2014-06-05 10:57:36

Pour le rendre encore plus clair.

1 > Définissez JAVA_HOME, Jre_home et Update Ant sur 1.9

2 > sur la construction.xml clic droit = > exécuter comme (cela prend en configuration)==>maintenant, dans cette configuration D'édition et de lancer la fenêtre pop-up

Sélectionnez l'onglet Principal, puis le troisième champ de formulaire appelé "Arguments" ajouter:

-Dbuild.compiler=javac1.7

3 > dans la construction.xml ajouter includeantruntime="false"

<javac srcdir="${src}" destdir="${bin}" debug="true" encoding="ISO-8859-1" includeantruntime="false">
        <classpath refid="my.classpath"/>
</javac>

Modifier la configuration

, Il devrait compiler sans aucun message

6
répondu vimal krishna 2015-02-27 14:26:53

M. studro est droit. Je viens de confirmer un exemple sur Ubuntu 14.04

sudo apt-get install ant
ant -version
Apache Ant (TM) Version 1.9.3 compiled on April August 2014

Fonctionne parfaitement dans eclipse, il suffit de suivre les étapes décrites par M. studro pour configurer le 'Ant Home' dans eclipse avec "/ usr / share / ant".
Cordialement, Stéphane.

1
répondu smillien62 2014-07-09 19:24:44

Je pense, ce que vous voyez est Ant Bug 53347 (voir https://issues.apache.org/bugzilla/show_bug.cgi?id=53347).

Si c'est le cas, essayez les solutions de contournement suivantes:

Définit la propriété " build.compilateur "à une valeur significative comme "javac1.7", ou "javac1. 3".

Définissez l'attribut" compiler "de l'élément" javac " de votre script de construction sur l'une des valeurs ci-dessus. Pour toutes les valeurs possibles et leur signification, voir http://ant.apache.org/manual/Tasks/javac.html

1
répondu user1774051 2014-08-15 08:42:09

Assurez-vous que vos fichiers source sont dans "ProjectDirectory/src".

0
répondu kasi 2014-05-03 10:46:06

J'ai déjà fait quelques recherches approfondies sur Google avant de poser cette question mais en continuant que j'ai trouvé une solution ici : Ce problème semble n'apparaître que lors de l'utilisation de JDK 1.8, donc l'utilisation de JDK 1.7 résout le problème. La ligne suivante doit être ajoutée à eclipse.ini:

-vm "path-to-jdk-1.7\bin\javaw.exe"
-1
répondu David_Z 2014-05-03 12:32:08