我创建了两个小项目de.app1和de.app2,其中App
de.app1使用de.app2Test
。
├── de.app1
│ ├── de
│ │ └── app
│ │ └── App.java
│ └── module-info.java
└── de.app2
└── de
└── test
└── Test.java
第一个项目中的module-info.java只包含module de.app1 {}
我编译了第二个项目并创建了一个 jar 文件:
javac de/test/Test.java
jar cf app2.jar de/test/Test.class
然后尝试像这样编译第一个项目:
javac -cp ../de.app2/app2.jar de/app/App.java module-info.java
由于Test
找不到而失败。当我在没有module-info.java的情况下编译项目时,一切都照常工作。
是否可以在 Java 9 模块中使用不是 Java 9 模块的 jar 中的类?特别是对于依赖于 3rd-party 项目的项目(例如 apache-commons,...),我认为需要这样的东西。