引用 Linux 中 jar 或 zip 文件内的文件

引用 Linux 中 jar 或 zip 文件内的文件

我想知道是否可以使用 URL 引用 JAR 或 ZIP 文件内的文件。我的意思是,不使用工具(例如 Java Jar 实用程序),而仅在操作系统级别使用。

例如,如果我myfile在 Jar 文件中有一个文件myjar,我希望能够编写如下内容:

ls -name 'jar:file:/myjar!/myfile'

并查看列出的文件myfile

这个问题的背景是我需要加载压缩在 JAR 文件中的 Prolog 文件,但目前我还没有发现如何使用我正在使用的基于控制台的 Prolog 解释器来执行此操作(YAP)。希望最后加载 Prolog 文件的命令将请求提交给操作系统,我认为我只需要找到引用 JAR 或 ZIP 文件内的文件的正确方法,以便操作系统理解我在说什么(我使用的是 OSX)。

答案1

AVFS文件系统提供了文件系统的视图,其中每个存档文件都/path/to/foo.zip可以作为目录进行访问~/.avfs/path/to/foo/zip#。 AVFS 提供对最常见存档文件格式的只读访问。

安装 AVFS(许多发行版都提供它;它需要保险丝,每个现代 UNIX 都支持)。一次性运行此命令(您可以从您的 运行它~/.profile):

mountavfs

此后:

ls /path/to/my.jar\#/myfile

相关内容