加载资源时,如果应用程序从 IDE 运行,则资源的路径可能与从 IDE 运行时的路径不同一个 jar 文件。如果应用程序依赖于特定文件路径,这可能会导致问题。
解决此问题的一种方法是使用 getResourceAsStream 而不是 getResource。 getResourceAsStream 返回一个InputStream,可用于读取资源数据,而无需处理文件路径。
另一个选项是在使用资源之前将资源提取到临时文件。这可以使用 Files.copy 方法来完成。
但是,需要注意的是,某些代码可能依赖于文件系统中单个物理文件中的数据。在这种情况下,将资源捆绑在 jar 文件中可能不是一个选项。
代码示例:
InputStream inputStream = WinProcessor.class.getResourceAsStream("repository"); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line = reader.readLine()) != null) { // Do something with the line } reader.close();
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3