如果您可以确定您的zip文件永远不会打包在另一个jar中,则可以使用以下方法:
URL zipUrl = Main.class.getResource("/resources/zipfile.zip");URL entryUrl = new URL("jar:" + zipUrl + "!/test.txt");InputStream is = entryUrl.openStream();要么:
URL zipUrl = Main.class.getResource("/resources/zipfile.zip");File zipFile = new File(zipUrl.toURI());ZipFile zip = new ZipFile(zipFile);InputStream is = zip.getInputStream(zip.getEntry("test.txt"));否则,您的选择是:
- 使用ZipInputStream一次浏览zip文件,以查找需要加载的每个条目。如果您有很多资源,这可能会很慢,除非您可以为所有资源重用相同的ZipInputStream。
- 不要将资源打包在嵌套的zip文件中,而只需将代码内联到jar中即可。
- 将嵌套的zip文件复制到一个临时目录中,然后使用ZipFile类进行访问。



