Corrigindo Spring boot error Caused by: java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters

Este artigo trás a solução do erro ‘Caused by: java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters’ ao tentar obter um arquivo do disco através do comando em java abaixo:

Paths.get(path).toAbsolutePath().normalize();

Problema

Nos meus testes o problema ocorreu no Linux Rhel 8, e ocorre devido ao systemd. Para testar você pode criar um service em /etc/init.d/test e inserir o comando abaixo:

#/bin/bash
locale

Em seguida execute o serviço, o resultado será o abaixo:

LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

Solução

Crie um arquivo chamado app.conf no diretório onde está seu jar do spring boot com o mesmo nome do projeto, por exemplo: app.jar app.conf. Insira o comando abaixo dentro do seu arquivo conf:

export LANG='en_US.UTF-8'

Dúvidas?

Você tem outras dúvidas? Deixe seu feedback nos comentários abaixo. Bom, espero que essa dica tenha sido útil.