Compilation croisée de Javac avec 1.7
Alors les gars,
J'essaie de jouer un peu avec Javac de compilation Croisée avec Ant et sur la borne. Localement et sur un environnement d'intégration et je vais avoir le même problème sur le problème de base.
Je l'exécute dans le terminal linux (et aussi sur mon cygwin sous windows et de la cmd):
javac -target 1.6 -source 1.7 -bootclasspath /usr/java/jdk1.6.0_27/jre/lib/rt.jar Main.java
avec Main.java avec rien d'autre qu'un Système..println.
javac -version ==> javac 1.7.0_11
J'obtiens le message d'erreur:
javac: source release 1.7 requires target release 1.7
J'ai à peu près la même configuration sur ma machine windows locale, avec les mêmes résultats.
C'était ma compréhension que la cross compilation est tout au sujet de la compilation du code source qui est compatible avec une version plus récente jdk à l'aide que la hausse de la version du jdk, mais le passage de l'rt.jar de la version cible qui est soi-disant plus faible.
si source et cible sont les mêmes, il a travaillé.
target=1.7 and source=1.7 workd fine
target=1.6 and source=1.6 worked just fine
mais je veux la cross-compilation, alors qu'est-ce que je fais mal?
J'apprécie toute l'aide que j'ai pu obtenir et merci d'avance.
source d'informationauteur Eyad Ebrahim
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas avoir une version plus récente de la source et la version la plus basse de la cible.
Par exemple, En Java 5, un certain nombre de nouvelles fonctionnalités ont été ajoutées à la langue, comme les génériques, l'autoboxing et ne vous attendez pas une JVM 1.4 pour le comprendre. Donc, vous devez indiquer au compilateur que votre code source Java 1.4 code source.
C'est ce qui explique les résultats que vous avez.
La valeur par défaut de la cible dépend de la valeur de la source:
Pour plus d'informations, reportez-vous à http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html
C'est une limite dans javac. Notez que vous pourriez vous en sortir avec juste, en précisant "cible" (et non pas de source) dans les anciennes versions de javac. Vous pourriez encore être en mesure de.
Vous pouvez envisager d'utiliser l'Éclipse Compilateur Java (cjce), qui est disponible comme une application autonome compilateur, comme un plugin maven et qui peut également être utilisé par les javac tâche dans des scripts ant.
Voir http://help.eclipse.org/indigo/topic/org.eclipse.jdt.doc.user/tasks/task-using_batch_compiler.htm pour plus de détails.