2016-07-08 1 views

Répondre

2

Il n'y a pas vraiment une version distincte pour le compilateur ECJ.

Le téléchargement autonome de l'ECJ disponible sur le Eclipse Project page est juste numéroté pour correspondre à la version Eclipse (donc 4.6 pour la version Eclipse Neon actuelle).

Le compilateur est lui-même inclus dans le plug-in org.eclipse.jdt.core qui a sa propre version (actuellement 3.12.0)

1
+0

merci, mais pour 'la javac' d'Oracle, je peux exécuter:' javac -version' et il me donnera une version particulière de la compilation (par exemple, 'javac 1.8.0_73'). J'aimerais savoir si quelque chose comme ça est possible avec le compilateur Eclipse. – Alexey

1

Vous devez d'abord aller dans Java EE Perspective. Pour cela allez dans le ruban puis: Fenêtre> Perspective> Ouvrir la perspective> Autre> Java EE.

NB: Si vous ne voyez pas cela, alors cela signifie que vous n'avez pas la perspective Java EE installée: voir comment le télécharger ici:

How to add Java EE perspective to Eclipse

Après cela, ouvrez le Explorateur de packages Puis faites un clic droit sur votre projet Java et sélectionnez Propriétés. Dans la fenêtre des propriétés, il devrait y avoir une option pour "Project Facets". Cette page liste les versions de toutes les facettes dans votre compilateur. Vous pouvez également voir le numéro de version du compilateur Java.

Si vous devez modifier cela, cliquez sur Modifier le projet. Ensuite, cliquez sur la facette que vous voulez changer aussi. Pour ce faire, sélectionnez la version dans le menu déroulant à côté du nom de la facette (Java Compiler). Cliquez sur Terminer, puis sur OK.

Espérons que cela aide!

0
  1. En utilisant command line pour CJCE autonome:

    java -jar ecj.jar -version 
    

Exemples:

(. On remarquera la différence entre les versions de la CJCE et les noms de pot publiés)

  1. Faites cela programme en utilisant api JSR-199:

    import java.io.File; 
    import java.lang.reflect.Method; 
    import java.net.URL; 
    import java.net.URLClassLoader; 
    import java.util.Arrays; 
    import java.util.ServiceLoader; 
    import javax.tools.JavaCompiler; 
    
    public class CompilerVersion { 
    
        public static void main(String[] args) throws Exception 
        { 
    
         // Standalone ECJ from http://repo1.maven.org/maven2/org/eclipse/jdt/ecj/3.13.50/ : 
         //jar2classpath("E:\\ecj-3.13.50.jar"); 
    
         // Load JDT Core & Compiler jars from installed Eclipse Oxygen 4.7.0: 
         String eclipseDir = "D:\\eclipse\\"; 
         jar2classpath(eclipseDir + "plugins\\org.eclipse.jdt.core_3.13.0.v20170516-1929.jar"); 
         jar2classpath(eclipseDir + "plugins\\org.eclipse.jdt.compiler.tool_1.2.0.v20170502-0408.jar"); 
    
         //Class.forName("org.eclipse.jdt.internal.compiler.tool.EclipseCompiler"); 
    
         JavaCompiler compiler = ServiceLoader.load(JavaCompiler.class).iterator().next(); 
    
         compiler.getTask(null, null, null, 
           Arrays.asList(new String[] {"-version"}), null, null).call(); 
    
        } 
    
        private static void jar2classpath(String jarFilename) throws Exception { 
         File file = new File(jarFilename); 
         Method method = URLClassLoader.class.getDeclaredMethod("addURL", new Class[]{URL.class}); 
         method.setAccessible(true); 
         method.invoke(ClassLoader.getSystemClassLoader(), new Object[]{file.toURI().toURL()}); 
        } 
    
    } 
    

    la production devrait à stderr :

    Eclipse Compiler for Java(TM) v20170516-1929, 3.13.0, Copyright IBM Corp 2000, 2015. All rights reserved.