1

嗨,我是 heroku java 开发的新手。好吧,我想从项目目录中读取一个 config.json 文件,但不知何故无法弄清楚该文件需要保存在哪里。尝试在 src>main>resources 中保持相同,但在部署后仍然没有找到文件。知道如何引用文件吗?. 我的文件位于 src/main/resources/config.json。

尝试做这样的事情

FileInputStream stream =new FileInputStream( LoadConfig.class.getResource("Config.json").getPath());

主要问题是不确定将 config.json 文件保存在哪里。

4

1 回答 1

4

您正在做的事情的总体思路应该有效,并且src/main/resources是在 Maven 项目中保存此类文件的正确位置,因为它们将target/classes在 Maven 构建期间被复制到类路径上可用,但有几个指针:

  • 确保文件的大小写正确。您提到该文件是config.json,但您的代码正在使用Config.json.

  • 您正在加载相对LoadConfig.class于其包目录中的文件。例如,如果完全限定名称是com.example.LoadConfig.class,您将Config.jsontarget/classes/com/example目录中查找,而不是在 base中查找target/classes。为了使事情更简单,您可能只想使用系统类加载器来加载文件,这样您就不必考虑相对路径,如下所示:

    FileInputStream stream = new FileInputStream(ClassLoader.getSystemResource("Config.json").getPath());
    
  • Heroku 上的构建和运行时应该与使用 Maven 3 和 OpenJDK 6/7/8 在您自己的机器上运行相同。在部署到 Heroku 之前,请确保您能够在本地工作。

于 2013-02-03T02:32:46.730 回答