Listar arquivos de um diretório dentro do jar

Buenas!

Gostaria de saber como listar arquivos que estão dentro do classpath(dentro do jar)…
Obs.: Possui subdiretórios.(16px e 32px).

Estou fazendo assim:

File diretorio = new File(getClass().getResource("/images/icones_usuario/"+tamanho).getPath());
JLabel teste = new JLabel();
teste.setIcon(new ImageIcon(getClass().getResource(nomeicone));

Enquanto estou executando com F6 no netbeans blz, funciona normal.
Agora ao gerar o .jar ele se perde. Coloquei um system.out para ver o caminho impresso e o resultado foi:
[color=darkred]file:/media/HP_PAVILION/Aula/meuPrograma/dist/meuPrograma.jar!/images/icones_usuario/16x16[/color]

Alguma dica?

Obrigado

até

Acho que para acessar recursos que estão dentro do jar, você poderia usar uma dessas opções:

InputStream is = Thread.currentThread().getClass().getResourceAsStream("/teste.xml");
URL url = Thread.currentThread().getClass().getResource("/teste.xml");

onde teste.xml é um arquivo qualquer jogado na raiz do .jar

Pesquisando MUITTTOOO encontrei a solução.

private void viewIcons(String tamanho) {//tamanho é o nome de um subdiretório
        try {
            String nomedoJar = "meuPrograma";
            String caminhoDoSeuJar = "D:\\Caminho\\Do\\arquivo.jar";

            ZipFile zipFile = new ZipFile(caminhoDoSeuJar);
            Enumeration<? extends ZipEntry> entries = zipFile.entries();

            while (entries.hasMoreElements()) {
                ZipEntry zipEntry = (ZipEntry) entries.nextElement();
                String name = zipEntry.getName();//name armazena o caminho do arquivo dentro do jar
                if (!zipEntry.isDirectory() && name.contains("images/icones_usuario/" + tamanho)) {
                    JLabel icone = new JLabel("");
                    InputStream is = ClassLoader.getSystemResourceAsStream(name);
                    icone.setIcon(new ImageIcon(ImageIO.read(is)));
                    jpanel1.add(icone);
                }
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

Obrigado pessoal =-)

Ha, caso alguém tenha dúvidas de como encontrar o caminho do jar dinâmicamente é só olhar em
http://www.guj.com.br/java/228071-pegar-o-caminho-do-jar—start-up-path

Valeu!!