It’s the directory where
java was run from, where you started the JVM. Does not have to be within the user’s home directory. It can be anywhere where the user has permission to run java.
So if you
/somedir, then run your program,
user.dir will be
A different property,
user.home, refers to the user directory. As in
See here for a list of system properties and their descriptions.