o problema acontece quando executo de outro projeto, dai ele pega o caminho do outro projeto, nao?
e tambem imprimi um monte de %%%% no meio da url
Pode postar qual pedaço do teu código imprime isso?
System.out.println(ConstrucaoRevistas.class.getClass().getResource("/").getFile());
imprime:
/C:/Users/maria/Desktop/Kit%20Automatiza%c3%a7%c3%a3o%20de/Eclipse%20Juno%20com%20integra%c3%a7%c3%a3o%20SVN/Reposit%c3%b3rio/Revistas/bin/
deveria pegar o resource/src, nao?
Pelo q entendi vc vem tentando opções diversas e nenhuma realmente funcionou, como estas:
URL resource = classLoader.getResource("/");
URL resource = SOME_CLASS.class.getResource("/");
URL resource = this.getClass().getResource("/");
Fonte: http://www.coderanch.com/t/463550/java/java/determine-current-path-classloader
Está dando NullpointerExceptoin ou vindo o caminho c/ representação porcentagem (ex: %20 q equivale ao espaço)
Dá uma olhada na pasta bin do teu projeto no Eclipse, lá ficam os arquivos java já compilados como .class.
bin é a raiz do teu classpath, e é de lá que o Eclipse roda o teu programa. Note que não existe src dentro desse bin.
Se por exemplo você tiver a classe br.com.minhaempresa.ConstrucaoRevistas, dentro do bin deve ter as pastas br/com/minhaempresa com um ContrucaoRevistas.class dentro dela.
Se você colocar um arquivo texto em bin, tipo bin/texto.txt e você fizer
ConstrucaoRevistas.class.getClass().getResource("/texto.txt"), este pedaço de código vai retornar o URL desse texto.txt
Se você colocar outro arquivo texto, em outro lugar dentro de bin, por exemplo em bin/resources/texto2.txt e fizer:
ConstrucaoRevistas.class.getClass().getResource("/resources/texto2.txt"), ele pega esse texto2.txt
Se você colocar outro arquivo texto, em outro lugar dentro de bin, por exemplo na mesma pasta onde está o teu ConstrucaoRevistas.class:
bin/br/com/minhaempresa/texto3.txt
ConstrucaoRevistas.class.getClass().getResource(“texto3.txt”), ele pega esse texto3.txt. Não precisa colocar a pasta onde ele está por que ele se encontra no mesmo nível do .class.
nao sei mais oque faço quando coloco o exemplo que voce deu em um System.out.print(url); imprime null fiz exatament o que voce pediu
Me diz duas coisas:
- Dentro da pasta bin dentro do teu projeto, qual é o caminho (br/uol/…) até chegar ao arquivo .class da classe onde está o teu código?
- Voltando para bin, qual o caminho até o arquivo de imagem que você está querendo pegar?
c:/eclipse%20da%20mari/workspace/projeto%20revistasExecucao/bin/br/uol/revistas/Principal.class
c:/eclipse%20da%20mari/workspace/projeto%20revistasExecucao/bin/br/uol/revistas/uolLogo.png
Então tenta o seguinte:
getClass().getResource("/br/uol/revistas/uolLogo.png")
[quote=Bruno Laturner]Então tenta o seguinte:
getClass().getResource("/br/uol/revistas/uolLogo.png")[/quote]
imprimi null
Ok, se isso deu errado, então não tenho mais nenhuma idéia de como arrumar o teu problema :lol:
Vamos lá, esclareçamos as questões:
1 - Exceção Nullpointer neste caso é lançado qdo. não se encontra o arquivo;
2 - Estão aparecendo porcentagem e etc pelo fato de sua workspace o caminho completo possuir espaços e acentos, definitivamente
evite pois já tive problemas de perder horas e no final era um mldt* acento, sério! Hehehe…
E 3 - Recomece passo-a-passo conforme orientamos aqui nos posts q tem de funcionar.
Ok?
[quote=mariazinhahappy] URL Diretorio = this.getClass().getResource("/src/br/uol/revistas/imagens");
System.out.println(Diretorio.getPath());
da nullpointer tambeimn[/quote]O que retorna quando você chama esse mesmo comando passando uma String vazia?
URL Diretorio = this.getClass().getResource("");
System.out.println(Diretorio.getPath());
Aliás, se não me engano, não pode usar o / no início da string (se eu estiver certo, o Java entenderia como C:\src…)
Normalmente não é boa prática apontar para a pasta src dentro do código pois, ao gerar o compilado, essa pasta costuma NÃO acompanhar o sistema.