deleteonexit has a drawback. It deletes on exit (duh) and if you don't exit for long nothing will be deleted. It also has debug aspects to leave the files around a while.
According to the docs it also only works in normal exits
"Deletion will be attempted only for normal termination of the virtual machine, as defined by the Java Language Specification."