从Heroku项目目录中读取json文件

时间:2012-11-21 19:16:02

标签: java heroku

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

尝试做这样的事情

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

主要问题是我不知道在哪里保存config.json文件。

1 个答案:

答案 0 :(得分:4)

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

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

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

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