首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >测试应用程序是否在Java的jar文件中运行

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

Stack Overflow用户
提问于 2015-01-26 05:30:20
回答 1查看 169关注 0票数 0

因此,我一直在做一些研究,并找到了一个解决问题的恶意解决方案,即:如何确定我正在加载的源文件夹中的资源是从jar文件中提取的,还是在Netbeans自动信任的构建目录中?

下面是我到目前为止所发现的:我注意到如果我在项目中加载一个文件

代码语言:javascript
运行
复制
File file = this.getClass().getClassLoader().getResource(somefile.txt);

打给

代码语言:javascript
运行
复制
System.out.println(File.getPath());

将这样的输出输出到控制台:

代码语言:javascript
运行
复制
jar:path/to/file.txt

中,我可以使用字符串函数进行测试。

代码语言:javascript
运行
复制
path.contains("jar");

获得一个布尔值,该布尔值似乎告诉我资源是否在jar文件中。

我想我的问题是,这是否有一个更好的解决办法,或者这是否是更好的方式来做到这一点?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-26 08:10:42

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

代码语言:javascript
运行
复制
URL url = this.getClass().getClassLoader().getResource("/somefile.txt");
if(null != url){    
    System.out.println(url.getProtocol());
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28145187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档