The path will be relative to the current working directory, the current directory when the process was launched. You're probably expecting something else. Try calling getAbsolutePath() on your File object to see how your path is being interpreted.
You were so right ... calling getAbsolutePath() on the file object gave me a totally different relative path than I had expected. My code runs just fine now.