Кажется, что в моем Eclipse Oxygen 3 транзитивные зависимости не разрешены в Plugin-Projects. Рассмотрим следующий проект, в котором A зависит исключительно от B, а B зависит от C: Хотя запуск A в JDK 1.8 проходит нормально (как и ожидалось), в JDK 9 я получаю хорошо известный
Exception in thread "main" java.lang.NoClassDefFoundError: c/C
at b.B.<init>(B.java:9)
at a.A.main(A.java:8)
Caused by: java.lang.ClassNotFoundException: c.C
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
... 2 more
Я знаю, я не объявлял никаких модулей, но я думал, что их опускание просто сохраняет проект как есть, даже в JDK 9. Когда я импортирую проект C непосредственно в A MANIFEST.MF, тогда все работает как в JDK 1.8. Так как же запустить проекты, если это возможно, без объявления модулей?