我有一个项目(称为 ExtensibleApp)。我正在尝试将其模块化。这些模块将依赖于 ExtensibleApp 中已有的一些通用类。
假设我有一个模块 myModule,它扩展了 ExtensibleApp,并且依赖于类 CommonClass.class
,我该如何将 CommonClass.class
导入到 myModule 项目中,并访问成员。
class MyModuleClass {
CommonClass commonClass = new CommonClass();
private void someMethod() {
commonClass.method....()
}
}
我想做的是创建一个可通过模块扩展的项目。这些模块将被加载/下载到 ExtensibleApp 类路径之外的文件夹中。在运行时,我怎样才能将两个 Jars 链接在一起,以便它们可以共享类。
示例目录结构:
main dir/---ExtensibleApp.jar
/---plugins ---/myModule.jar
/chat.jar
/videoplayer.jar
/like.jar
/unlike.jar
/etc.jar
/etc_etc.jar
最佳答案
有许多框架可以实现这一点。以下是其中一些的列表
- Maven
- OSGi,如果您想在模块之间进行更精细的访问控制。
- Ant
- Apache Ivy
- Gradle
我在 eclipse IDE 上使用过 Maven、OSGi 和 Ant。其中我发现 Maven 最简单,OSGi 最有用。
关于java - 如何在运行时访问另一个项目中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33759158/