为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取JavaJAR文件中的资源路径

如何获取JavaJAR文件中的资源路径

四季花海 2019-07-05 14:27:23
如何获取JavaJAR文件中的资源路径我正试图找到一条通往资源的道路,但我没有运气。这是可行的(在IDE和JAR中都是如此),但是这样我就无法获得文件的路径,只有文件内容:ClassLoader classLoader = getClass().getClassLoader();PrintInputStream(classLoader.getResourceAsStream("config/netclient.p"));如果我这么做:ClassLoader classLoader = getClass().getClassLoader();File file = new File(classLoader.getResource("config/netclient.p").getFile());结果是:java.io.FileNotFoundException: file:/path/to/jarfile/bot.jar!/config/netclient.p (No such file or directory)有办法获得资源文件的路径吗?
查看完整描述

3 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

这是故意的。“文件”的内容可能不能作为文件使用。记住,您正在处理的类和资源可能是JAR文件或其他类型资源的一部分。类加载器不必为资源提供文件句柄,例如JAR文件可能还没有扩展到文件系统中的单个文件。

如果绝对需要java.io.File,则可以通过将流复制到临时文件中并执行此操作来完成您通过获取java.io.File所能做的任何事情。


查看完整回答
反对 回复 2019-07-05
?
MYYA

TA贡献1868条经验 获得超4个赞

唯一的答案是-

String path = this.getClass().getClassLoader().getResource(<resourceFileName>).toExternalForm()

基本上getResource方法提供URL。从这个URL中,您可以通过调用toExternalForm()

参考资料:

getResource()toExternalForm()


查看完整回答
反对 回复 2019-07-05
  • 3 回答
  • 0 关注
  • 3033 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信