ModRun: 无需Jigsaw的Java模块化

ModRun是一个Java类加载器,能够在运行时直接从Maven仓库加载和运行类,并解决相关依赖。可加载多个应用到同一个JVM中,同时保持这些类完全隔离;能同时可加载同一目录的多个版本到JVM,甚至可在同一个应用中使用同样目录下多个版本类,同时保持这些加载不同版本完全隔离,彻底终结了依赖冲突。

如果一个应用依赖模块A和模块B,而A和B依赖于模块C,但是依赖于C的不同版本,ModRun会为模块A加载C的一个版本,也会为模块B加载C的另外一个版本。

下面展示如何创建一个Repository对象,加载一个模块和从中读取一个类:


Repository repository = new Repository("test-repo");

Module module = repository.createModule(
"com.nanosai", "ModRunDepA", "1.0.0");

Class theClass = module.getClass(
"com.nanosai.a.ComponentA");

Object theObject = theClass.newInstance();
Method method = theClass.getMethod(
"doIt");
String result = (String) method.invoke(theObject, new Object[0]);

System.out.println(result);


nanosai/modrun: A Java classloader which can load