'.' means current directory or "./" means current directory.
'.xyz" is a file name which begins with '.' and is hidden. (ls -a can display hidden files)
If ./xyz in your home works, /home/yourname/xyz also works (the latter is "absolute path'), when ~/ is /home/yourname. (you cannot have '.' before '/')
xyz works when you have your current directory in shell variable "path", (I assume you use shell tcsh, ksh, zsh, bash... depending on your setting.)