Не используйте String.replaceAll
в этом случае - это указано в терминах регулярных выражений, что означает, что вам потребуется еще больше экранирования. Это должно быть хорошо:
String escaped = original.replace("\\", "\\\\");
Обратите внимание, что обратная косая черта удваивается из-за наличия строковых литералов Java - поэтому здесь используются фактические строки "одиночная обратная косая черта" и "двойная обратная косая черта", а не двойная и четверная.
replace
работает с простыми строками - без регулярных выражений.