У меня есть устаревший код 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, который я тестирую.
java.activation
был просто примером того, что мне нужно, я добавил еще один модуль для того же. Также я включил ссылку на код тестирования, который я использую со всеми настройками Eclipse. - person alostale   schedule 18.10.2017