Meu objetivo é tirar todos cedilhas e acentos de uma String para gerar um Path. Estou utilizando o seguinte algoritmo.
// Tira caracteres especiais a afins
// Por exemplo: 'maçã' vira 'maca'
private static File geraPath(String path) {
StringBuilder aux = new StringBuilder();
String temp;
for (String s : path.split(" ")) {
aux.append(s.toLowerCase(new Locale("pt", "BR"))).append(File.separator);
}
temp = Normalizer.normalize(aux.toString(), Normalizer.Form.NFD)
.replaceAll("[^\\p{ASCII}]", "");
return new File(temp);
}
Debugando funciona normalmente, no entanto, quando empacoto e gero o jar, a String 'Parametrização', transforma-se em 'parametrizaao', o que não acontece ao rodar o projeto pela IDE. Para gerar o jar estou utilizando o maven-assembly-plugin. POM.xml para packaging:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>
com.teknisa.App
</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
O que pode ser? Já tentei encoding da JVM com ' -Dfile.encoding=UTF8 ', ainda assim não funcionou.