加载资源时,如果应用程序从 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();
以上是如何从Jar文件中正确加载资源?的详细内容。更多信息请关注PHP中文网其他相关文章!