运行 jar 时出现 FileNotFoundException

我能够使用 Maven 正确构建我的 jar。在我的代码中,我做了以下内容:

    InputStream input = new FileInputStream("src/configuration_file.txt");

然后,当我运行我的 jar 时,我得到 FileNotFoundException。我知道文件 configuration_file.txt 在 jar 中,因为当我用 winrar 打开它时,我可以直接看到它。

我认为问题可能与 POM 中的文件夹和路径有关,但我不确定,我真的不知道还能尝试什么。



千万里不及你
浏览 213回答 3
3回答

慕容708150

默认情况下,资源文件(您使用的是默认值,因为您没有在 pom 中定义它)应该转到 src/main/resources for maven 项目。默认情况下,Maven 从该目录获取非源文件并将它们放在结果 jar 中的正确位置。要访问 Jar 中的资源,您需要使用类加载器。已多次描述:Reading a resource file from within jar

慕桂英3389331

我想你可能会考虑这种方式  InputStream i = this.getClass().getResourceAsStream(File.separator+"configuration_file.txt");  BufferedReader r = new BufferedReader(new InputStreamReader(i));  System.out.println(r.readLine());

慕哥9229398

试试这个,当我们的资源在 Spring 应用程序的情况下在 jar 中时它会起作用InputStream resource = new ClassPathResource("src/configuration_file.txt").getInputStream();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java