Erro DIRPF / For input string: “9-e”

Mais uma declaração de Imposto de Renda no Linux, mais um problema. Não reclamo tanto porque sei o quão difícil é programar para “ambientes hostis”, mas reclamo ainda assim por não tem um canal de comunicação técnico para poder relatar os problemas (ou código aberto, ainda que não livre, para já mandar patchs de uma vez). O erro, no título, acontece logo de cara, ao tentar abrir o programa.

A explicação com solução. Num terminal (Ctrl+Alt+T), execute:

java -version

Esse primeiro comando mostra a versão padrão do Java da sua máquina. Na minha máquina retorna uma linha com “9-ea” no final, e isso causa o problema. O pessoal da Receita está tentando ler o “9”, mas o “-ea” causa um erro, que por sua vez derruba o programa. Não muito esperto.

Com isso e mente, execute um segundo comando:

update-alternatives --list java

Esse comando mostra uma lista de versões alternativas do Java, instaladas na sua máquina. No meu caso:

/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
/usr/lib/jvm/java-7-oracle/jre/bin/java
/usr/lib/jvm/java-9-oracle/bin/java

A versão da DIRPF 2015-2016 instala num caminho padrão, cujo ícone tem o seguinte comando:

/usr/lib/jvm/java-9-oracle/bin/java -Xms128M -Xmx512M -jar ~/ProgramasRFB/IRPF2016/irpf.jar

Que você vai perceber, é um comando que começa com uma das alternativas listadas acima. A solução, bem simples, é substituir a primeira parte por uma das alternativas e rodar no terminal, até funcionar. A ideia é pegar uma das alternativas, indo da maior versão para a menor, sempre preferindo a versão da Oracle (infelizmente).

Eu consegui abrir com a penúltima das alternativas (que minha máquina é a versão 1.7.0_80), mas não fui até o final da declaração ainda para ter certeza.

Tente aí, e comente o sucesso ou insucesso. Ficarei feliz com os agradecimentos, e posso tentar ajudar os casos que não resolver.

E sorte, claro.


ADENDO: Para facilitar, criei um script que tenta os caminhos padrão listados acima. E não, executar código aleatório das internets não é lá muito seguro. Dado o aviso, o script está disponível aqui, e pode ser baixado, habilitado e executado com as sequências abaixo:

wget https://raw.githubusercontent.com/alfsb/dirpf/master/dirpf20152016-init.sh
chmod +x dirpf20152016-init.sh
./dirpf20152016-init.sh

Agradeço quem comentar os caminhos de alternativas Java, versão 7 ou maior, não listadas acima, para complementar o script.