Comment compiler a.java avec le support des anciennes versions de Java?

Je veux compiler mon .java (plusieurs) en un {[0] } qui sont compatibles avec au moins Java 1.6 et les versions plus récentes, de préférence Java 1.5 et les versions plus récentes de Java. (J'ai Java 1.7.0_5)

21
demandé sur Mohit Tyagi 2012-07-06 19:02:58

5 réponses

Oui, vous pouvez définir la version du compilateur au moment de la compilation. Et compilez votre code java dans les anciennes versions de java.

De L'article Oracle : http://docs.oracle.com/javase/1.5.0/docs/tooldocs/windows/javac.html

Exemple De Compilation Croisée

Ici, nous utilisons javac pour compiler du code qui s'exécutera sur une machine virtuelle 1.4.

% javac -target 1.4 -bootclasspath jdk1.4.2/lib/classes.zip \
             -extdirs "" OldCode.java

Vous pourriez également avoir besoin du paramètre suivant pour définir la version de votre code.

-source release

- spécifie la version de le code source accepté.

14
répondu gtiwari333 2016-09-21 13:32:23

Depuis JDK 9, javac prend en charge une nouvelle option pour la compilation croisée

javac --release N ...

, Qui est équivalent à

javac -source N -target N –bootclasspath rtN.jar
5
répondu Joe Darcy 2018-04-22 20:32:57

Vous pouvez utiliser javac -target 1.5 <source files>.

Si vous utilisez un système de construction, Eclipse ou un autre IDE pour construire des jars, veuillez spécifier lequel.

3
répondu cha0site 2012-07-06 15:05:51

Vous pouvez utiliser la dernière version du JDK et définir le niveau source sur 1.5 - tant que vous n'utilisez pas les classes / méthodes introduites après 1.5, vous devriez être ok pour toutes les versions de la JVM 1.5 et supérieures:

Source de 1,5

0
répondu tofarr 2012-07-06 15:06:36

Vous pouvez spécifier la version cible du compilateur inférieure à la version java de build (toutes les réponses le disent essentiellement) mais vous ne devriez pas: c'est assez compliqué car cela ne fonctionne que si vous fournissez également les bibliothèques de classes pour la version cible réelle. Si vous faites cela, vous êtes beaucoup mieux avec simplement en utilisant cette ancienne version de Java pour compiler. Beaucoup plus propre et moins de choses à installer. Pour Java 9 les options sont un peu plus agréables mais vous avez toujours besoin d'un vieux JDK qui traîne pour le rt.jar.

Ce que vous peut faire est dans votre cycle ide et dedvelopment utiliser le -target/-bootclasspath astuce pour obtenir un compilateur plus rapide et de meilleurs avertissements, mais il et release builds alors devrait être fait avec la version cible.

0
répondu eckes 2016-08-21 18:04:03