When you type a wildcard at a UNIX command prompt, it's the shell program (i.e., bash) that interprets it. When you use Runtime.exec() to execute rm, there's no shell involved. rm gets the asterisk character itself, and doesn't treat it as a special character.
Run a shell, and use the shell to run rm; i.e., like
Runtime.exec(new
String[] { "sh", "-c", "rm /tmp/ABC*" });