2017-10-17 8 views
5

J'ai un code Java existant, à savoir .:ajouter des modules du système java 9 compiler dans Eclipse

package org.alo.test.j9; 
import javax.activation.DataHandler; // in java.activation module 
import javax.annotation.PostConstruct; // in java.xml.ws.annotation module 
public class OldClass { 
    public static void main(String[] args) { 
     DataHandler dh = new DataHandler(null, null); 
     System.out.println(dh); 
    } 
} 

Ce n'est pas encore modularisé donc il faut utiliser --add-modules de le compiler avec Java 9.

$ javac -version 
javac 9 
$ javac org/alo/test/j9/OldClass.java 
src/org/alo/test/j9/OldClass.java:3: error: package javax.activation is not visible 
import javax.activation.DataHandler; // in java.activation module 
      ^
    (package javax.activation is declared in module java.activation, which is not in the module graph) 
src/org/alo/test/j9/OldClass.java:4: error: package javax.annotation is not visible 
import javax.annotation.PostConstruct; // in java.xml.ws.annotation module 
      ^
    (package javax.annotation is declared in module java.xml.ws.annotation, which is not in the module graph) 
2 errors 

je besoin d'ajouter les modules que je utilise pour pouvoir compiler avec succès:

$ javac org/test/OldClass.java --add-modules=java.activation,java.xml.ws.annotation 

Je veux le compiler dans Eclipse (en utilisant Oxygen.1a) avec Java 9. Mais j'obtiens une erreur de compilation The import javax.activation cannot be resolved.

Comment puis-je demander au compilateur Eclipse d'ajouter ces modules? Je n'ai trouvé aucun pourboire à Eclipse documentation à ce sujet.

Here Vous pouvez trouver un projet éclipse simple que je suis en train de tester.

+1

Copie possible de [Quel est le remplacement du paquet javax.activation dans java 9?] (Https://stackoverflow.com/questions/46493613/what-is-the-replacement-for-javax-activation-package- in-java-9). La raison pour laquelle il est déprécié et évolutif. – nullpointer

+1

@nullpointer Ce n'est pas un doublon de cette question. –

+1

Dans ce cas, pourriez-vous partager les configurations d'exécution d'Eclipse utilisées avec les paramètres du projet avec? – nullpointer

Répondre

1

La documentation complète pour ces caractéristiques doit encore être écrite, mais un début a été fait dans le New & Noteworthy for Photon M3(travail en cours). La fonctionnalité que vous recherchez est mentionnée dans le paragraphe commençant par

Dans l'onglet Contenu, des modules individuels dans un conteneur comme la bibliothèque système JRE peuvent être inclus ou exclus en déplaçant le module de gauche à droite ou vice versa ...

Cet onglet combine les effets --add-modules et --limit-modules.