I have an application I am writing on Linux. It is a Java webapp intended to be run on Tomcat. When it initializes, my application will copy some standalone java utility programs to the host filesystem that it will shell out to over the course of its runs. Assume that it is not desireable for me to run these utilities in the Tomcat's JVM - they must be run in their own JVM as standalone Java apps.
The java utilities themselves will be ephemeral that do need to last between runs of my app (and I may upgrade over time), but the utilities do save data to the filesystem that does need to persist between runs (the folder where the utility's data is stored is configurable.)
I don't know or care where my Java webapp lives; the host's Tomcat will manage that for me. But, I would like to know where it is best (aesthetically, traditionally, for security reasons, etc) on Linux for me to write my utility programs and where it is best for me to direct those programs to write their persistent data.
Places I have thought about writing to are subfolders under the Tomcat user's home and under /var. Writing to /tmp scares me, I've seen that folder run out of space because its partition wasn't the main one. Do I write everything under one folder (ephemeral and persistent) or do I split everything up?
As you can probably tell, I know enough to be dangerous on Linux/Unix systems, but I don't know enough for software architecture. I'd hate for my app to do something awkward or non-traditional for Linux systems with the customer's filesystem.