Se você quiser entrar com o caracter “:” em um valor, você precisa precedê-lo com o caracter “”. Portanto, você teria de fazer:
pg_etapa.avaliador=Nome do Avaliador\: {destinatario}
A
antonioedirane
Não é com o “:” não, pois tenho mais umas 200 expressões com os dois pontos e todos funcionam.
Estou tentando ver com regex, mas não estou conseguindo encontrar como usar regex no arquivo properties.
enantiomero:
O seu problema não é com o caracter chave e sim com o “:”.
Se você quiser entrar com o caracter “:” em um valor, você precisa precedê-lo com o caracter “”. Portanto, você teria de fazer:
pg_etapa.avaliador=Nome do Avaliador\: {destinatario}
E
enantiomero
Continuo reafirmando que seu problema não é com “{” e sim com “:”. Escrevi o seguinte programa para provar.
importjava.util.*;importjava.io.*;classTesteProperties{publicstaticvoidmain(String[]args)throwsIOException{Propertiesprop=newProperties();prop.setProperty("pg_etapa.avaliador","Nome do Avaliador: {destinatario}");FileWriterfw=newFileWriter("teste.properties");prop.store(fw,"Exemplo de property com chave e dois pontos");fw.close();// Após a execução de prop.store, o conteúdo de teste.properties é parecido com isto aqui:/*#Exemplo de property com chave e dois pontos#Thu Sep 17 13:31:03 BRT 2009pg_etapa.avaliador=Nome do Avaliador\: {destinatario}*/// Note que o caracter ":" foi precedido por um "\". PropertiespropLida=newProperties();FileReaderfr=newFileReader("teste.properties");propLida.load(fr);fr.close();System.out.println(propLida.getProperty("pg_etapa.avaliador"));// Deve imprimir:/*Nome do Avaliador: {destinatario}*/}}
E
enantiomero
De fato, se você leu adequadamente o Javadoc, ele diz que o nome da chave termina no primeiro “:” ou “=” que ele encontrar. Entretanto, pode ser que você tenha algum problema em uma linha ANTES dessa tal chave (que deveria funcionar normalmente) e aparentemente o problema aparece na tal linha que você está mostrando. Um exemplo de arquivo Properties que pode dar problemas:
pg_etapa.diretorio=c:\temp\
pg_etapa.avaliador=Nome do Avaliador: {destinatario}
O que ocorreu é que a property “pg_etapa.diretorio” recebeu o seguinte valor:
“c:temppg_etapa.avaliador=Nome do Avaliador: {destinatario}”
e a property “pg_etapa.avaliador” nem foi setada, porque sua linha foi “engolida” pela linha anterior.
porque se um “” estiver em um final de linha, esse “” “engole” o final de linha e junta as duas linhas em uma só. Tome cuidado com “”, é isso que pode estar dando problemas. OK?