具有“user.dir”系统属性的相对文件路径

时间:2015-09-25 14:19:33

标签: java

我正在尝试在服务器上的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)));

2 个答案:

答案 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)));