Mostrando postagens com marcador problem. Mostrar todas as postagens
Mostrando postagens com marcador problem. 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

quarta-feira, 7 de dezembro de 2011

O nextLine() não funciona.


Um problema que pode ser comum para quem começa a usar o método nextLine() classe java.util.Scanner é o fato de não conseguir passar informações para o mesmo(Isso só acontece as vez devido ao fato de estar sendo usando o buffer já existe no teclado).


Exemplo que pode vir dar erro:

import java.util.Scanner;

    public static void main(String args[])

    {

    Scanner in = new Scanner(System.in);

    String nomePorCompleto ;

    System.out.println("Digite seu nome por inteiro: ");

    //Trecho que pode vir a dar erro

    nomePorCompleto = in.nextLine();

    System.out.println("Seu nome é :"+nomePorCompleto);

    }


Caso ocorre-se o suposto problema uma solução simples seria inserir mais uma linha contendo o trecho in.nextLine como pode ser visto abaixo:


xemplo que pode vir dar erro:

import java.util.Scanner;

    public static void main(String args[])

    {

    Scanner in = new Scanner(System.in);

    String nomePorCompleto ;

    //trecho adicionado para resolver um possível erro.
    in.nextLine();

    System.out.println("Digite seu nome por inteiro: ");

    //Trecho que pode vir a dar erro

    nomePorCompleto = in.nextLine();

    System.out.println("Seu nome é :"+nomePorCompleto);

    }