我怀疑当您在本地运行时,它是从爆炸的JAR文件(即,作为文件系统上的常规文件)拾取类路径上的文件。
在Heroku上,它位于JAR文件中,这意味着它不是常规文件,必须将其作为输入流读取,如下所示:
ClassLoader cl = this.getClass().getClassLoader();
InputStream inputStream = cl.getResourceAsStream(pathToMyFile);
然后,您可以使用BufferedReader读取行。但是也许ResourceUtils
有更好的方法。
您可以通过运行中的相同命令在本地重现该问题Profile
。