Лучший способ избежать подобных проблем - создавать свойства программно, а затем сохранять их. Например, используя такой код:
java.util.Properties props = new java.util.Properties();
props.setProperty("table.whereclause", "where id=100");
props.store(System.out, null);
Это выведет в System.out правильно экранированную версию.
В моем случае вывод был:
#Mon Aug 12 13:50:56 EEST 2013
table.whereclause=where id\=100
Как видите, это простой способ генерировать содержимое файлов .properties, которое гарантированно будет правильным. И вы можете поставить столько свойств, сколько захотите.