referindo-se a arquivos dentro de um jar ou arquivos zip no Linux

2

Eu estou querendo saber se posso me referir a arquivos dentro de arquivos JAR ou ZIP usando URLs. Quero dizer, sem usar uma ferramenta (como o utilitário Java Jar), mas apenas no nível operacional do sistema.

Por exemplo, se eu tiver um arquivo myfile em um arquivo Jar myjar , gostaria de poder escrever algo como:

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

e veja listado o arquivo myfile

O contexto desta questão é que eu preciso carregar arquivos Prolog que são compactados em arquivos JARs, mas atualmente não descobri como fazer isso com o interpretador Prolog baseado em console que estou usando (YAP). Na esperança de que, no final, o comando para carregar os arquivos do Prolog apenas envie o pedido para o sistema operacional, eu pensei que eu só precisava descobrir o caminho certo para se referir a arquivos dentro de arquivos JAR ou ZIP de tal forma que o sistema operacional entende o que estou falando (estou usando o OSX).

    
por Sergio 30.08.2012 / 03:15

1 resposta

1

O sistema de arquivos AVFS apresenta uma visão do sistema de arquivos em que cada arquivo /path/to/foo.zip está acessível como um diretório ~/.avfs/path/to/foo/zip# . O AVFS fornece acesso somente leitura aos formatos de arquivo mais comuns.

Instale o AVFS (ele é fornecido por muitas distribuições; ele requer FUSE , que todos os Unix modernos suportam). Execute este comando de uma vez por todas (você pode executá-lo a partir do seu ~/.profile ):

mountavfs

E depois disso:

ls /path/to/my.jar\#/myfile
    
por 30.08.2012 / 03:55