import java.io.File;
public class ProgramDataLocation {
public static String programDataDir() {
String osName = osName();
if (osName.startsWith("Windows")) {
String localAppDataDir = System.getenv("LOCALAPPDATA");
if (localAppDataDir != null && !localAppDataDir.isEmpty()) {
return localAppDataDir;
} else {
return userDir();
}
} else if (osName.startsWith("Linux")) {
String xdgDataHome = System.getenv("XDG_DATA_HOME");
if (xdgDataHome != null && !xdgDataHome.isEmpty()) {
return xdgDataHome;
} else {
return userDir() + File.separator + ".local" + File.separator + "share";
}
} else {
return "";
}
}
public static String userDir() {
return System.getProperty("user.home");
}
public static String osName() {
return System.getProperty("os.name");
}
public static void main(String[] args) {
String programDataDir = programDataDir();
System.out.println("Program Data Directory: " + programDataDir);
}
}