Even so, why not try using renameTo()? I suspect it will be considerably easier than what you're doing, and just as fast.
However if for some reason you really need to do this with Runtime.exec(), I recommend reading
When Runtime.exec() won't. The article is over ten years old but still the best source I know of for this information; the only thing really missing is that it hasn't been updated to include ProcessBuilder, which would make the code a bit cleaner. However most of the key issues remain the same with ProcessBuilder as with Runtime.exec(). I think it's likely that the most useful advice for you will be to look at the error stream and see what it says. There's probably a message there that will give a clue about what the problem is.