我正在尝试在服务器上的Web应用程序中读取本地文件。在部署之外对JBoss进行测试时,文件路径是正确的。但是,当我将它部署到JBoss时,文件路径会改变JBoss的bin
目录。 user.dir
系统属性在部署为战争时会更改。
如何在不使用绝对文件路径的情况下阻止这种情况?
我想避免使用绝对文件路径,因为需要在具有不同目录结构的多台计算机上复制项目。
String curDir = System.getProperty("user.dir");
String fileLocation = curDir.toString() + "/end/of/path/to/flat.json";
JsonReader reader = new JsonReader(new InputStreamReader(new FileInputStream(fileLocation)));
答案 0 :(得分:0)
您是否尝试过
RSAFormatter.CreateSignature(paramDataToSign);
它为您提供了当前操作系统的真实路径。
此致
FT
答案 1 :(得分:0)
感谢this question and answer我找到了解决方案。我不确定这是否是最佳方式,但它确实有效。我在我的网络应用程序中添加了src/main/resources
文件夹,并将我需要访问的文件放在那里。
来自src / main / resources的资源将被放到类路径的根目录中,因此您需要获取资源:
代码:
String file = "/flat.json";
JsonReader reader = new JsonReader(new InputStreamReader(getClass().getResourceAsStream(file)));