pdfsave saves its config in %USERPROFILE%\.pdfsam (e.g. in my case "C:\Users\Jim\.pdfsam"). The correct place for settings is %APPDATA%\pdfsam (no dot required) (e.g. in my case "C:\Users\Jim\AppData\Roaming\pdfsam").
Although this is wrong on even on older versions of Windows, it's particularly noticeable in Windows Vista and 7. In XP if you opened explorer, by default you would start in My Documents (which had My Pictures and My Videos in it), and probably only advanced users would look in %USERPROFILE% directly. In Vista and 7, by default explorer starts in %USERPROFILE% (where now My Pictures etc live as well as My Documents). Things that start with a . aren't hidden on Windows, so now every time you open up explorer you see pdfsam's "hidden" settings directory (sorted to the top of the list!).
I realise an objection might be that you don't want to put code just for Windows in pdfsam, since Java is meant to be platform-independant. But the truth is that pdfsam already does have platform specific code in it, it's just that the platform is Unix and Windows uses that code too!
I'm running pdfsam ver 2.2.1, and it appears both JRE 1.4.1_07 and JRE 1.6.0_26 are installed. My OS is Windows 7 Pro 64-bit.
Thanks for considering this.
I had a look into this, and I see that the relevant code is in XmlConfigurationService.java, specifically the line:
public static final String DEFAULT_CONFIG_DIRECTORY = System.getProperty("user.home") + "/.pdfsam"
From what I've read, the best way to get the app data directory is to use System.getenv("APPDATA"), so perhaps you could check whether System.getProperty("os.name") contains "Windows", or just check if the APPDATA env variable is non-empty, and if so use that.
Having a bit more of a look, it seems like the "correct" way to do this in Java is to abandon the platform-specific code altogether (both the Windows stuff I'm proposing, and the Unix stuff that's already there), and use the Java Preferences API, which stores things in the correct location whatever to OS. As a benefit this would also mean that you wouldn't have to manipulate config files and their contents, giving you less code to maintain. But, I realise this would be a big change.