鉴于我能够加载 mail.properties 文件,例如:
ResourceBundle rb = ResourceBundle.getBundle("META-INF.mail");
System.out.prinltn("subject :" + rb.getString("email.subject")); //output : 'subject : Job Application'
然而我无法阅读;用同样的方法;我的 mail.properties 文件为FileInputStream
。我尝试了所有这些选项,但没有一个工作,我总是得到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中:
任何帮助都将得到更多的赞赏。
答案 0 :(得分:1)
问题是FileInputStream()
将查找相对于当前目录的路径。由于您的META-INF
位于导入的jar中,因此无法找到它。
根据this post,您有以下选项:
Class.getResourceAsStream
或类似的查看更多详情。
我的问题是你是否可以使用ResourceBundle
加载它,为什么要尝试以不同的方式重新加载它?