如何为Mac和Ubuntu指定Java文件路径

时间:2018-01-23 20:34:40

标签: java macos ubuntu

我使用IntelliJ和Spring和Java在Mac上本地开发应用程序,然后使用Ubuntu 16.04.3 LTS(GNU / Linux 4.4.0-1048-aws)部署到AWS上的tomcat服务器x86_64的)。 我在指定文件路径时遇到问题,因此无法在两种环境中运行。

我的代码是

        InputStream fileStream = new FileInputStream("src/main/resources/static/web/data/ReportDates.json");
        JsonReader reader = Json.createReader(fileStream);
        JsonObject reportDates = reader.readObject();
        reader.close();

当我在本地运行时,会正确读取文件。它位于:

src/main/resources/static/web/data/ReportDates.json

但是当我部署时,该代码会导致错误消息:

java.io.FileNotFoundException:src / main / resources / static / web / data / ReportDates.json(没有这样的文件或目录)

该机器上文件的实际位置为:

/opt/tomcat/webapps/automentor/WEB-INF/classes/static/web/data/ReportDates.json

如何指定文件路径以便它在两种环境中都能正常工作?

1 个答案:

答案 0 :(得分:0)

我放弃了使用单一路径。 @Nicholas Pesa让我思考 - 因为我使用IDEA,我没有固定的WEB-INF文件夹,因此我更容易更改应该使用的路径而不是将文件移动到固定位置。 我的代码现在使用:

        String filepath = (new File("src/main/resources/static/web/data/ReportDates.json").exists()) ? "src/main/resources/static/web/data/ReportDates.json" : "/opt/tomcat/webapps/automentor/WEB-INF/classes/static/web/data/ReportDates.json";