From memory, the persistence service was / was accompanied by something spefically designed for caching arbitrarily large amounts of data locally.
Alternatively - and perhaps much much more neatly - you could perhaps use temporary files (the File API has special methods for this) for your image caching etc. From memory, it's up to the OS when to delete them, and most OS's don't delete until the machine is rebooted - or maybe not even then, if there's plenty of free disk space. You can insist that the file is deleted when the JVM exits - or not!
IIRC, I've created temp files, and told the JVM to leave them. They've then sat in my /tmp directory on linux for months. It would be nice to imagine that windows would do something similar, and would only completely clear out the temp directory when that "you have run out of disk space. I can autmoatically recover XXX Mb. You may want to delete additional files" dialog appears. ?
As for logfiles, you should probably be just logging to System.out, and which webstart automatically captures and puts in a file IF THE USER WANTS IT. If someone has a bug and it's repeatable it takes one email to tell them to turn on the logging in the webstart GUI; if it's not repeatable, my logging probably won't have recorded enough info for me to debug it anyway (since it's likely a race condition, which requirs a lot more debugging than I'd leave in a production build!).
So, I'm tempted to believe that a developer who doesn't like this and insists on creating a log file independent of user choice is overstepping their bounds - it's my PC, not theirs.