Je suis aux prises avec le problème de la tâche javac ant depuis très longtemps maintenant. Le problème est avec qui, apparemment, fourmi ignore l'attribut cible qui est fixé à 1,5:Ant essayer de compiler à 1.6 lorsque la cible est fixée à 1.5
<target name="compile" description="Kompilacja zrodel" depends="init">
<javac target="${compile.targetvm}" source="${compile.sourcecompatibility}" debug="${compile.debug}" optimize="${compile.optimize}" verbose="${compile.verbose}" srcdir="${source.dir}" destdir="${build.classes.dir}" encoding="${compile.source.encoding}" includeantruntime="false">
<classpath refid="compile.classpath" />
</javac>
</target>
La cible et la source est réglée sur 1,5. Quand je lance la tâche que j'ai erreur de compilation:
foo.Bar is not abstract and does not override abstract method createStruct(java.lang.String,java.lang.Object[]) in java.sql.Connection
Selon la méthode docs java (link) CREATESTRUCT a été introduit en Java 1.6, donc je sais que fourmi compile à 1,6 et non 1,5 comme je l'ai poli lui demande faire.
J'ai exécuté la tâche depuis eclipse et depuis la ligne de commande avec le même résultat, donc ce n'est pas un problème d'éclipse. J'essayais de changer le JRE dans ANT et d'utiliser différentes versions ANT et rien n'a aidé.
J'ai essayé tout ce que je pouvais trouver sur le web et maintenant j'abandonne. Quelqu'un pourrait-il m'aider? Pretty please ..
La spécification de la compatibilité de la source contrôle uniquement la syntaxe du langage, et non la Java Runtime Library. Puisque vous n'avez pas dit à Ant où trouver une bibliothèque d'exécution Java 1.5, elle utilise la même bibliothèque que celle utilisée pour invoquer Ant. – Andreas
Pour corriger, spécifiez 'bootclasspathref =" compile.bootclasspath "', après avoir spécifié ' ' –
Andreas
Oui! Ça marche! Merci beaucoup :) Vous devriez mettre cela comme réponse pour que je puisse l'accepter –