如何確定動態加載我的罐子的罐子的名稱?可能嗎?我嘗試了許多使用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