quinta-feira, 28 de novembro de 2013

Obtendo endereço no formato MS-DOS

As vezes precisamos obter o endereço de uma pasta no formato MS-DOS em um arquivo .bat par iniciar uma aplicação Java.

Endereços como C:\Program Files\Java\jdk1.7.0_45\jre não são válidos para promt MS-DOS, na maioria das vezes apenas colocamos este endereço entre aspas (") para que o mesmo seja válido. Contudo, à casos em que precisamos informar o endereço no formato do MS-DOS, neste caso o endereço seria C:\PROGRA~1\Java\JDK17~1.0_4\jre.

Para obter este tipo de endereço, siga os passos abaixo:
  • Abra o prompt de comando
  • Utilize o comando cd para entrar no diretório (cd C:\Program Files\Java\jdk1.7.0_45\jre)
  • Então utilize a instrução for %I in (.) do echo %~sI
  • O resultado exibido pelo prompt será C:\PROGRA~1\Java\JDK17~1.0_4\jre

Recuperar Primeira Exception do Stacktrace

O Código abaixo recupera à primeira excessão de um stacktrace, ou seja, a excessão que deu origem ao erro.
    private Throwable getRootException(Throwable ex) {
        Throwable rtEx = null;
        if ((rtEx = ex.getCause()) == null) {
            return ex;
        } else {
            return getRootException(rtEx);
        }
    }

Este código é util para desvendar um erro que é propagado por muitas camadas.