Mostrando postagens com marcador corrigir. Mostrar todas as postagens
Mostrando postagens com marcador corrigir. Mostrar todas as postagens

sexta-feira, 4 de dezembro de 2015

Resolvendo problema de path de arquivo errado

Resumo

Paths.get(getClass().getProtectionDomain().getCodeSource().getLocation().toURI()).toString();


Introdução

Tive um problema quando estava tentado acessar o local onde minha aplicação estava sendo executada (dentro da pasta bin do meu projeto), sempre que passava-se pelo trecho de código o path do arquivo parecia como errado, a solução para esse problema foi utilizar  a classe java.nio.file.Paths.

Exemplo de retorno com erro:

/C:/Users/Robson/dev/androis/Teste/bin/

Exemplo de retorno esperado:

C:\Users\Robson\dev\androis\Teste\bin


Abaixo é possível visualizar a resolução deste problema.

import java.net.URISyntaxException;
import java.nio.file.Paths;

public class TesteMain {

public static void main(String args[]) throws URISyntaxException {
TesteMain testeMain = new TesteMain();

System.out.println("Sem correção");
System.out.println(testeMain.getClass().getProtectionDomain().getCodeSource().getLocation());
System.out.println("Com correção");
System.out.println(Paths.get(testeMain.getClass().getProtectionDomain().getCodeSource().getLocation().toURI()));

}

}


Após a execução do código acima o resultado expresso será:

Sem correção
file:/C:/Users/Ge3Software/dev/androis/Teste/bin/
Com correção

C:\Users\Ge3Software\dev\androis\Teste\bin