在我的Eclipse Oxygen 3中,插件项目中似乎没有解决可传递依赖关系。考虑以下项目,其中A完全依赖于B,B依赖于C:
虽然在JDK 1.8中运行A很好(正如预期的那样),但在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时。MF,则所有操作都与JDK 1.8中的操作一样。
那么,如果可能的话,如何在不声明模块的情况下运行项目呢?