Since you are not using a shell to execute 'cp' you need to provide the full path to the 'cp' executable e.g. "/bin/cp" BUT BUT BUT you are falling for 3 of the traps outlined in http://www.javaworld.com/jw-12-2000/jw-1229-traps.html . You are not handling the process 'stderr' , you are not handling the process 'stdout' and you are ignoring the process return code. Although the 'traps' article is very old and deals with Runtime.exec() the recommendations still apply and you should follow them to the letter.
Why are you resorting to using ProcessBuilder to copy a file? It is very easy in pure Java.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com