Comment voir la sortie du compilateur lors de l'exécution de javac à travers une tâche Ant?

y a-t-il une façon claire et simple de voir la sortie du compilateur lorsque vous exécutez javac à travers une tâche Ant ?

Voici mon javac étiquette Ant:

<javac srcdir="${myproject.src}" destdir="${myproject.class}">
    <!-- ... -->
</javac>

voici le seul message d'erreur que j'ai:

/path/to/build.xml:42: Compile failed; see the compiler error output for details.

le problème est que je ne sais pas comment voir la sortie d'erreur du compilateur pour plus de détails ...


quelques éléments de configuration qui peuvent aider:

  • Ant 1.6.5
  • Windows 7 x64
  • Java 1.6.0_20 x32
  • le Lancement de cibles via Eclipse

je sais qu'il y a des réponses à des questions connexes sur SO, mais aucune d'entre elles ne répond vraiment à ces questions simples:

20
demandé sur Community 2013-07-05 19:09:29

5 réponses

je pense que vous cherchez l'attribut verbose="true" .

demande au compilateur la sortie verbeuse; par défaut à no.

vous avez déjà mentionné dans les commentaires que cela n'affiche pas la cause de votre erreur. Je pense qu'il se passe autre chose dans votre situation. J'ai un exemple de projet et de toute façon la cause de mon erreur a été imprimé. Voici la sortie avec verbose="false" :

[mkdir] Created dir: C:\Projects\MavenSandbox\target\classes
[javac] C:\Projects\MavenSandbox\mavensandbox.xml:284: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 3 source files to C:\Projects\MavenSandbox\target\classes
[javac] C:\Projects\MavenSandbox\src\main\java\com\sandbox\Sandbox.java:8: error: cannot find symbol
[javac]         System.out.prinln("Hello, I\'m the best!");
[javac]                   ^
[javac]   symbol:   method prinln(String)
[javac]   location: variable out of type PrintStream
[javac] 1 error

quelque chose d'étrange et spécifique à votre code est à l'origine du message d'erreur "bad". Pouvez-vous créer un exemple de projet qui reproduit l'erreur?


comme vous l'avez mentionné, debug="true" n'est pas l'attribut que vous recherchez.

indique si la source doit être compilée avec les informations de débogage; par défaut à off. - G: aucun ne sera passé sur la ligne de commande pour les compilateurs qui le prennent en charge (pour les autres compilateurs, aucun argument de ligne de commande sera utilisé). Si elle est définie à true, la valeur de l'attribut debuglevel détermine l'argument de la ligne de commande.

vous savez quand vous avez la trace de la pile et qu'il y a des numéros de ligne? C'est ce que fait debug="true" . S'il est éteint, vous n'avez pas les numéros de ligne.

8
répondu Daniel Kaplan 2013-07-05 17:43:25

le problème se produit également lorsque le compilateur java lui-même ne peut pas démarrer. Par exemple, lorsque le tas est trop grand. La tâche java2 D'Intellij affichera l'information

Using external javac compiler
Compilation arguments:
...
'-J-Xmx1600m'
...
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.

et la cause dans la construction.fichier xml, dans mon cas:

<property name="compiler.args" value="-J-Xmx1600m"/>
1
répondu Olivier Faucheux 2015-09-21 09:47:52

vous devez ajouter l'attribut debug

<javac srcdir="${myproject.src}" destdir="${myproject.class}" debug="true>
    <!-- ... -->
</javac>
0
répondu VirtualTroll 2013-07-05 15:13:26

utiliser cette

<javac srcdir="src" destdir="build/classes" debug="true">
            <classpath>
                <path refid="classpath"/>
            </classpath>
</javac>
0
répondu S Kr 2013-07-05 18:07:56

j'ai reçu le même message d'erreur sans autre information. Le problème a fini par être un des miens .les fichiers jar étaient corrompus. Le remplacement de ce .jar a résolu le problème.

0
répondu mekane84 2016-06-30 19:47:27