Como faço para ler um .zip de dentro de um .jar?

Estou fazendo uma biblioteca de componentes para jogos que vai ter como um pacote padrão de imagens um DefaultPack.zip

funciona facil para ler o arquivo quando importo as classes do projeto em outro

packs.put(defaultPack, new ZipFile(new File(this.getClass().getResource("DefaultPack.zip").getFile().replace("%20", " "))));

mas quando a biblioteca ta rodando de um .jar eu recebo um

java.io.FileNotFoundException: file:\A:\GuedezWorkspace\olinto\GraphicsLib.jar!\br\guedez\graphics\components\util\DefaultPack.zip (A sintaxe do nome do arquivo, do nome do diretório ou do rótulo do volume está incorreta

eu sei que o “!” era alguma coisa para sinalizar que o arquivo é um jar e o resto o path é dentro do jar ou algo assim.
mas de qualquer maneira preciso que o zip seja aberto de dentro do .jar =/

se uso

packs.put(defaultPack, new ZipFile(new File(this.getClass().getResource("DefaultPack.zip").getURI()));
ele diz que a URI não está hierarquizada ou algo asim =/