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

如何从JavaJAR文件中读取资源文件?

如何从JavaJAR文件中读取资源文件?

慕无忌1623718 2019-07-05 15:36:29
如何从JavaJAR文件中读取资源文件?我试图从一个单独的JAR文件中访问一个XML文件,这个JAR是作为桌面应用程序运行的。我可以获得我需要的文件的URL,但是当我将它传递给FileReader(作为字符串)时,我会得到一个FileNotFoundException,上面写着“文件名、目录名或卷标签语法不正确”。作为参考,我可以从同一个JAR中读取图像资源,将URL传递给ImageIcon构造函数。这似乎表明我用来获取URL的方法是正确的。URL url = getClass().getResource("/xxx/xxx/xxx/services.xml");ServicesLoader jsl = new ServicesLoader( url.toString() );在ServicesLoader类中XMLReader xr = XMLReaderFactory.createXMLReader();xr.setContentHandler( this );xr.setErrorHandler( this );xr.parse( new InputSource( new FileReader( filename )));使用这种技术读取XML文件有什么问题?
查看完整描述

3 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

你不会说这是桌面还是网络应用。我会用getResourceAsStream()方法来自适当的ClassLoader(如果是桌面)或上下文(如果是Web应用程序)。


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

TA贡献1111条经验 获得超0个赞

如果您使用的是URL.toString结果作为FileReader构造函数URL.toString有一点坏了,所以您应该通常使用url.toURI().toString()..在任何情况下,字符串都不是文件路径。

相反,您应该要么:

  • 通过

    URL

    ServicesLoader

    让它召唤

    openStream

    或者类似的。
  • 使用

    Class.getResourceAsStream

    然后穿过溪流,可能在一个

    InputSource

    ..(请记住检查空值,因为API有点混乱。)


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

添加回答

举报

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