你是heroku java开发的新手。好吧,我想从项目目录中读取一个config.json文件,但不知何故无法弄清楚文件需要保存在哪里。尝试在src> main>资源中保持相同但在部署后仍然得到filenotfound。知道如何引用文件吗? 。我的文件位于src / main / resources / config.json。
尝试做这样的事情
FileInputStream stream =new FileInputStream( LoadConfig.class.getResource("Config.json").getPath());
主要问题是我不知道在哪里保存config.json文件。
答案 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之前,请确保您能够在本地工作。