This doesn't work on Linux (and I'm surprised if it works on Mac). I believe the problem is that it has a bunch of Windows path separators hardcoded. For instance, when constructing the paths where portraits are held, it has logic like this:
String bodies = packDirectory + "\\bodies\\";
Java is smart enough to convert forward slashes to system-specific separators, but it doesn't convert backslashes in the same way. This can be fixed by just using forward slashes or by intentionally using File.separator.
If this application is on source control somewhere, I'd consider submitting a patch.