gpt4 book ai didi

java - 测试应用程序是否在 Java 的 jar 文件中运行

转载 作者:行者123 更新时间:2023-12-01 11:58:44 25 4
gpt4 key购买 nike

所以我一直在做一些研究,并找到了解决我的问题的一个黑客解决方案,这就是:如何确定我在源文件夹中加载的资源是否是从 jar 文件中提取的,或者是在 Netbeans 自动配置的构建目录中?

这是我迄今为止发现的内容:我注意到如果我加载项目内的文件

File file = this.getClass().getClassLoader().getResource(somefile.txt);

调用

System.out.println(File.getPath());

将向控制台输出类似的内容:

jar:path/to/file.txt

我可以在其中使用字符串函数进行测试

path.contains("jar");

获取一个 boolean 值,似乎可以告诉我资源是否在 jar 文件中。

我想我的问题是是否有更好的解决方案,或者这是否是首选方法?

我愿意接受建议或任何答案

最佳答案

ClassLoader.getResource(String) 返回一个 URL,而不是文件。您应该检查 getProtocol() 方法返回的内容,而不是将其转换为字符串并使用 String.contains() 调用:

URL url = this.getClass().getClassLoader().getResource("/somefile.txt");
if(null != url){
System.out.println(url.getProtocol());
}

关于java - 测试应用程序是否在 Java 的 jar 文件中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28145187/

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