Olá,
alguém pode me ajudar a resolver o seguinte problema:
Estou fazendo um plugin para o eclipse e preciso criar um
novo File de uma pasta dentro do jar que contem folhas de estilo
para listagem, Bem consigo criar um File da pasta mas quando
eu chamo o metodo listFiles() ele retorna null.
Aleguém sabe resolver este problema?
Por Favor me ajudem!
Obrigado!
ClassLoadercl=this.getClass().getClassLoader();URLurl=cl.getResource("com/stylesheets");//Esta é a pastaStrings=url.toString();Filedirectory=newFile(s);File[]roots=directory.listFiles();
ClassLoadercl=this.getClass().getClassLoader();URLurl=cl.getResource("com/stylesheets");//Esta é a pastaStrings=url.toString();Filedirectory=newFile(s);File[]roots=directory.listFiles();
B
btafarelo
Talvez seja por 2 motivos:
1 - Na url recuperada, vem o protocolo que nesse caso é file:/
2 - Na url tem espaço, e ao invés de vir o caracter branco vem %20
Fiz um teste e para mim funcionou, substitua a linha abaixo
Você não pode usar o File.listFiles para listar o que existe dentro de um arquivo jar. É necessário abrir o arquivo como um arquivo .zip, usando as classes do pacote java.util.zip, como ZipEntry e ZipInputStream.
B
btafarelo
É verdade, esqueci que o arquivo estava dentro de um jar.
Você pode utilizar a classe java.util.zip.ZipFile:
amigo, não consigo fazer um novo JarFile usando getClass().getClassLoader.getResource(),
ao usar o caminho que ele renotorna para dar um new JarFile(“caminho”) ele retorna uma execeção
java.io.FileNotFoundException
URLurl=cl.getResource("arquivo.jar");JarFilejarFile=null;try{jarFile=newJarFile(url.toExternalForm());}catch(IOExceptione1){// TODO Auto-generated catch blocke1.printStackTrace();//retorna: java.io.FileNotFoundException}
tem alguma ideia sobre isso?
Obrigado!
B
btafarelo
“arquivo.jar” é o nome do Jar onde esta sua classe?
Oque te retorna o URL?
H
hewerton.comp
java.io.FileNotFoundException: bundleresource:\408\lib\arquivo.jar (A sintaxe do nome do arquivo, pasta ou nome do volume está incorreta)
o nome e endereço correto é : lib/arquivo.jar
e o jar esta lá!
Obrigado!
B
btafarelo
Mas esse caminho não existe.
bundleresource:\408\lib\arquivo.jar
Eu fiz um teste aqui e funcionou, veja meu código abaixo e considere minhas observações quanto ao caminho com espaço e o protocolo no inicio da url: