Although true that there is no JVM-contained object that other JVMs can access, there are system objects you can use, e.g. FileDescriptor, InputStream, ServerSocket, for this purpose. The trick is that each process has to be aware of the same handle (this can be accomplished by having each VM load the same property or env setting). Then, roll-your-own check for file existence, stream canWrite(), or socket bind as needed. But, you might consider instead of multi-process, multi-thread.