Obter o nome de arquivos dentro do JAR

0 respostas
B

Venho desenvolvendo uma classe de Internacionalização que é capaz de determinar os Locales implementados pelos ResourceBundles da aplicação. Para isso, dou uma olhada no nome dos arquivos, utilizando o seguinte algorítmo:

private static void addLocaleListFromJar(List<Locale> locales) throws IOException {
    // Obter uma URL para o Jar
    URL packageUrl = I18n.class.getProtectionDomain().getCodeSource().getLocation(); // Retorna "rsrc:./" - O quê isso significa?
    JarInputStream jar = new JarInputStream(packageUrl.openStream());
    while (true) {
        JarEntry entry = jar.getNextJarEntry();
        if (entry == null) {
            break;
        }
        String name = entry.getName();
        if (resourceBundlePattern.matcher(name).matches()) {
            addLocaleFromResourceBundle(name, locales);
        }
    }
}

Atualmente, esse algoritmo está falhando - jar.getNextJarEntry() sempre retorna null logo de cara.

Fiz uma pergunta no StackOverflow sobre este mesmo problema, a resposta que obti me levou ao algoritmo acima. O cara que respondeu testou meu código e, curiosamente, funcionou com ele, mas não comigo.

Alguem sabe resolver isso?

Criado 5 de março de 2011
Respostas 0
Participantes 1