如何确定动态加载我的罐子的罐子的名称?可能吗?我尝试了许多使用ClassLoader的变体,但没有成功。确定动态加载的罐子的加载器罐子
在此先感谢。
让我解释一下为什么我需要“loader jar”的名字。在我们的容器,我们有下面几行:
URLClassLoader classLoader = new URLClassLoader(new URL[] { artifact.getFile().toURI().toURL() });
Method method = URLClassLoader.class.getDeclaredMethod("addURL", URL.class);
method.setAccessible(true);
method.invoke(classLoader, artifact.getArtifact().getFile().toURI().toURL());
Class<?> processorClass = classLoader.loadClass(className);
Object processorClassInstance = processorClass.newInstance();
当加载的类实例化时,上面的newInstance,它的属性文件是外部类所在的罐子。配置文件位于一个以包含执行上面代码行的类的容器jar命名的目录中。因此,如果部署的容器jar名为RedcapTDP.jar,则配置文件位于“C:... \ RedcapTDP”中。当部署RedcapTDP.jar时,它会动态加载配置的Maven工件,然后它将从RedcapTDP目录读取它的配置文件。
我希望说清楚!
'class > processorClass = classLoader.loadClass(className);'这样这个行返回的类,在instatiated需要从一个依赖于上面知道的'artifact'的名称的目录加载配置吗? – Strelok
它将根据包含执行该代码行的类的jar名称从目录加载配置。 – user481779