无法使用相对路径将文件从 jar 读取到 FileInputStream
Unable to read a file from a jar into a FileInputStream using a relative path
鉴于我能够加载我的 mail.properties 文件,例如:
ResourceBundle rb = ResourceBundle.getBundle("META-INF.mail");
System.out.prinltn("subject :" + rb.getString("email.subject")); //output : 'subject : Job Application'
但是我无法阅读;用同样的方法;我的 mail.properties 文件为 FileInputStream
。我已经尝试了所有这些选项 none,但我总是得到 FileNotFoundException
:
FileInputStream fis = new FileInputStream("META-INF/mail.properties");
FileInputStream fis = new FileInputStream("META-INF//mail.properties");
FileInputStream fis = new FileInputStream("META-INF\mail.properties");
文件夹 META-INF 存在于构建时加载的 jar 中:
我们将不胜感激任何帮助。
问题是 FileInputStream()
将查找相对于当前目录的路径。由于您的 META-INF
在导入的 jar 中,因此无法找到它。
根据this post,您有以下选择:
- 指定一个绝对文件名
- 指定一个相对文件名,该文件名会考虑到您所在的位置 运行 此
- 将文件捆绑为资源并使用
Class.getResourceAsStream
或类似的
查看更多详细信息。
我的问题是,如果您能够使用 ResourceBundle
加载它,您为什么要尝试以不同的方式重新加载它?
鉴于我能够加载我的 mail.properties 文件,例如:
ResourceBundle rb = ResourceBundle.getBundle("META-INF.mail");
System.out.prinltn("subject :" + rb.getString("email.subject")); //output : 'subject : Job Application'
但是我无法阅读;用同样的方法;我的 mail.properties 文件为 FileInputStream
。我已经尝试了所有这些选项 none,但我总是得到 FileNotFoundException
:
FileInputStream fis = new FileInputStream("META-INF/mail.properties");
FileInputStream fis = new FileInputStream("META-INF//mail.properties");
FileInputStream fis = new FileInputStream("META-INF\mail.properties");
文件夹 META-INF 存在于构建时加载的 jar 中:
我们将不胜感激任何帮助。
问题是 FileInputStream()
将查找相对于当前目录的路径。由于您的 META-INF
在导入的 jar 中,因此无法找到它。
根据this post,您有以下选择:
- 指定一个绝对文件名
- 指定一个相对文件名,该文件名会考虑到您所在的位置 运行 此
- 将文件捆绑为资源并使用
Class.getResourceAsStream
或类似的
查看更多详细信息。
我的问题是,如果您能够使用 ResourceBundle
加载它,您为什么要尝试以不同的方式重新加载它?