gpt4 book ai didi

java - 在Java中,如何在外部文件之前加载jar中的资源?

转载 作者:行者123 更新时间:2023-12-01 14:17:29 25 4
gpt4 key购买 nike

我有以下问题:我尝试从 jar 加载文件,但我在外部有与 jar 中的文件位于相同相对路径的相同文件:“res/rtrconfig”。如何忽略外部文件并获取 jar 文件路径?我无法删除外部文件,因为我的代码的其他部分需要它。 到目前为止我所得到的:

ClassLoader loader = Thread.currentThread().getContextClassLoader();
URL url = loader.getResource(path);
//check if file is in jar or not
if (url == null) {
System.err.println("FATAL: Properties file not found.Stopping the server.");
System.exit(-1);
}
if ( !url.getProtocol().equals("jar")){

System.err.println("Properties found outside jars.Please delete " + url.getPath() + " and re-start the server");
System.exit(-1);
}

这部分代码检查文件是否在 jar 或路径中找到。我不知道如何配置 URL 以在路径中的文件之前查看 jar 中的文件。感谢您抽出时间。

最佳答案

你可以获得所有资源

Enumeration<URL> urls = ClassLoader.getSystemClassLoader().getResources(path);

文件 URL 将具有"file"协议(protocol)

    while (urls.hasMoreElements()) {
URL url = urls.nextElement();
if (url.getProtocol().equals("file")) {
...
}
}

关于java - 在Java中,如何在外部文件之前加载jar中的资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17993594/

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