добавить системные модули java 9 для компиляции в eclipse

У меня есть устаревший код Java, т.е.:

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);
    }
}

Он еще не модульный, поэтому для его компиляции с Java 9 требуется использовать --add-modules.

$ 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

Мне нужно добавить модули, которые я использую, чтобы иметь возможность успешно скомпилировать:

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

Я хочу скомпилировать его в Eclipse (используя Oxygen.1a) с Java 9. Но получаю ошибку компиляции The import javax.activation cannot be resolved.

Как я могу сказать компилятору eclipse добавить эти модули? В документации Eclipse я не нашел никаких советов по этому поводу.

Здесь вы можете найти простой проект eclipse, который я тестирую.


person alostale    schedule 17.10.2017    source источник
comment
Возможный дубликат Что является заменой для javax. пакет активации в Java 9?. Причина того, что он устарел и подлежит обновлению.   -  person Naman    schedule 17.10.2017
comment
@nullpointer Это не дубликат этого вопроса.   -  person Mark Rotteveel    schedule 17.10.2017
comment
В таком случае не могли бы вы поделиться используемыми конфигурациями запуска Eclipse с настройками проекта вместе с?   -  person Naman    schedule 18.10.2017
comment
Модуль @nullpointer java.activation был просто примером того, что мне нужно, я добавил еще один модуль для того же. Также я включил ссылку на код тестирования, который я использую со всеми настройками Eclipse.   -  person alostale    schedule 18.10.2017


Ответы (1)


Полная документация по этим функциям еще не написана, но начало положено в Новое и интересное для Photon M3 (в разработке). Функциональность, которую вы ищете, упоминается в абзаце, начинающемся с

На вкладке «Содержание» отдельные модули внутри контейнера, такого как системная библиотека JRE, могут быть включены или исключены путем перемещения модуля слева направо или наоборот...

Эта диалоговая вкладка сочетает в себе эффекты --add-modules и --limit-modules.

Изменить: в Eclipse 2019-06 упомянутый выше пользовательский интерфейс был обновлен. Актуальную документацию можно найти в онлайн-справка.

person Stephan Herrmann    schedule 22.10.2017