我能够使用 Maven 正确构建我的 jar。在我的代码中,我做了以下内容: InputStream input = new FileInputStream("src/configuration_file.txt");然后,当我运行我的 jar 时,我得到 FileNotFoundException。我知道文件 configuration_file.txt 在 jar 中,因为当我用 winrar 打开它时,我可以直接看到它。我认为问题可能与 POM 中的文件夹和路径有关,但我不确定,我真的不知道还能尝试什么。
3 回答
慕容708150
TA贡献1831条经验 获得超4个赞
默认情况下,资源文件(您使用的是默认值,因为您没有在 pom 中定义它)应该转到 src/main/resources for maven 项目。默认情况下,Maven 从该目录获取非源文件并将它们放在结果 jar 中的正确位置。
要访问 Jar 中的资源,您需要使用类加载器。已多次描述:Reading a resource file from within jar
慕桂英3389331
TA贡献2036条经验 获得超8个赞
我想你可能会考虑这种方式
InputStream i = this.getClass().getResourceAsStream(File.separator+"configuration_file.txt");
BufferedReader r = new BufferedReader(new InputStreamReader(i));
System.out.println(r.readLine());
慕哥9229398
TA贡献1877条经验 获得超6个赞
试试这个,当我们的资源在 Spring 应用程序的情况下在 jar 中时它会起作用
InputStream resource = new ClassPathResource("src/configuration_file.txt").getInputStream();
添加回答
举报
0/150
提交
取消