因此,我一直在做一些研究,并找到了一个解决问题的恶意解决方案,即:如何确定我正在加载的源文件夹中的资源是从jar文件中提取的,还是在Netbeans自动信任的构建目录中?
下面是我到目前为止所发现的:我注意到如果我在项目中加载一个文件
File file = this.getClass().getClassLoader().getResource(somefile.txt);
打给
System.out.println(File.getPath());
将这样的输出输出到控制台:
jar:path/to/file.txt
中,我可以使用字符串函数进行测试。
path.contains("jar");
获得一个布尔值,该布尔值似乎告诉我资源是否在jar文件中。
我想我的问题是,这是否有一个更好的解决办法,或者这是否是更好的方式来做到这一点?
我愿意接受任何建议或任何答案。
发布于 2015-01-26 08:10:42
ClassLoader.getResource(String)
返回一个URL,没有文件。与其将其转换为字符串并使用String.contains()调用,不如检查getProtocol()
方法返回的内容:
URL url = this.getClass().getClassLoader().getResource("/somefile.txt");
if(null != url){
System.out.println(url.getProtocol());
}
https://stackoverflow.com/questions/28145187
复制相似问题