在 Java 中,访问 JAR 文件中打包的资源可能具有挑战性。虽然流式传输资源内容很简单,但获取可访问的文件路径可能难以捉摸。
一种方法尝试使用 getResource 方法创建 File 对象:
ClassLoader classLoader = getClass().getClassLoader(); File file = new File(classLoader.getResource("config/netclient.p").getFile());
但是,这通常会失败FileNotFoundException,因为资源在文件系统上可能没有相应的文件。
了解资源概念
JAR 文件将资源捆绑在存档中,这些资源可能无法作为物理文件直接访问。类加载器处理资源加载,并可以通过流提供访问。
替代方案:流式传输资源内容
要在没有文件路径的情况下访问资源内容,请使用:
ClassLoader classLoader = getClass().getClassLoader(); PrintInputStream(classLoader.getResourceAsStream("config/netclient.p"));
临时文件Option
如果 File 对象是必不可少的,请考虑将流复制到临时文件中:
InputStream resourceStream = classLoader.getResourceAsStream("config/netclient.p"); File tempFile = File.createTempFile("resource", ".tmp"); try (OutputStream outputStream = new FileOutputStream(tempFile)) { resourceStream.transferTo(outputStream); }
复制后,您可以根据需要操作临时文件。
以上是如何访问 Java JAR 文件内的资源路径?的详细内容。更多信息请关注PHP中文网其他相关文章!