希望有人可以帮助我。
据我了解,使用 ClassLoader 是加载内容的最可靠方式。
public class Pipeline{
public static URL getResource(String filename) {
return ClassLoader.getSystemResource(filename);
}
public static InputStream getResourceAsStream(String filename) {
return ClassLoader.getSystemResourceAsStream(filename);
}
}
如果您在“[jar bundle]/resources/abc.png”中有一个文件..您可以通过以下方式加载它:
URL url = Pipeline.getResource("resources/abc.png");
加载很简单。
储蓄是我的动力。
我有一个程序在运行时收集数据,在退出时保存该数据,然后在下次加载数据并继续添加。
我认为最简单的解决方案是保存回 jar 包中,以便 ClassLoader 可以获取它们。这甚至可能吗?还是推荐?
我不介意将我的资源放在 jar 之外,只要我不必求助于“文件”来获取它们并保存到它们。(除非它可以干净地完成)
folder/application.jar
folder/resources/abc.png
如果您可以 ../ 从 ClassLoader 正在查找的位置返回一个,那么从实际包含 jar 文件的目录中干净地获取数据将很容易
Pipeline.getResource("../resources/abc.png");
有任何想法吗?