gpt4 book ai didi

java - 在tomcat Web应用程序的类路径中动态添加属性文件

转载 作者:行者123 更新时间:2023-11-30 05:57:13 26 4
gpt4 key购买 nike

我正在尝试将属性文件动态添加到类路径,如下所示

try {
File fileToAdd = new File(FILE_PATH);
URL u = fileToAdd.toURL();
ClassLoader sysLoader = ClassLoader.getSystemClassLoader();
if (sysLoader instanceof URLClassLoader) {
sysLoader = (URLClassLoader) sysLoader;
Class<URLClassLoader> sysLoaderClass = URLClassLoader.class;

// use reflection to invoke the private addURL method
Method method = sysLoaderClass.getDeclaredMethod("addURL",
new Class[] { URL.class });
method.setAccessible(true);
method.invoke(sysLoader, new Object[] { u });
}
} catch (Exception e) {
logger.error(e.getMessage());
}

但是我在类路径中看不到这个文件。当我使用检查它时

System.getProperty("java.class.path")

我在此列表中看不到我的文件。我在这里遗漏了什么吗?

最佳答案

您不能添加属性文件的 URL,您必须添加属性文件所在目录的 URL。如:method.invoke(sysLoader , fileToAdd.getParent().toURL());那么你可以使用ClassLoader.getResourceAsStream("my.properties");,ClassLoader将在新添加的目录中搜索该文件。

来自 URLClassLoader

“此类加载器用于从引用 JAR 文件和目录的 URL 搜索路径加载类和资源。任何以“/”结尾的 URL 都被假定为引用一个目录。否则,该 URL 会被假定引用一个 JAR 文件,该文件将根据需要打开。”

关于java - 在tomcat Web应用程序的类路径中动态添加属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6128148/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com