我有下面的问题: 我尝试从jar中加载文件,但我有相同的文件位于相同的相对路径:“res/rtrconfig”作为jar中的文件。我如何忽略外部文件并获取jar文件路径?我无法删除外部文件,因为我的代码的其他部分需要它。 我有什么至今:如何在Java之外的文件之前从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);
}
的代码检查这部分,如果该文件是建立在罐子或路径。 我不知道如何配置URL来查看路径中文件之前的jar文件。 谢谢你的时间。
上面的代码返回什么?不是在jar中找到的资源吗?如果不是,你传递的路径的值和jar中的资源的全名是什么? –
“在jars之外发现的属性。请删除”+这里是绝对路径+“并重新启动服务器”。 res \ rtrconfig是资源的名称 – nucandrei