在Java应用程序中使用XDG目录规范
问题描述:
我正在尝试遵循我的Java应用程序上的XDG目录规范。我已经用它为应用程序数据:在Java应用程序中使用XDG目录规范
protected String getDefaultDataDir() {
String rootPath = System.getenv("XDG_DATA_HOME");
if(rootPath == null) {
rootPath = System.getProperty("user.home")+S+".local"+S+"share";
}
return rootPath+S+Pinocchio.PLATFORMNAME;
}
(S是包含System.getProperty(“文件分割符”)常数)
我现在想对用户的文件存储文档夹。但是我没有名为XDG_DOCUMENTS_DIR的环境变量。我拥有具有该XDG配置的“.config/user-dirs.dirs”文件和直接返回该路径的“xdg-user-dir DOCUMENTS”文件。
更糟糕的是,默认文档目录取决于用户区域设置。
这是在java应用程序中使用配置的Documents目录的最佳方式?
答
在Gnome上有java-gnome支持库,它正在调用与gnome更好地集成的本机调用。它可以通过调用Glib.getUserSpecialDir
获得用户目录的路径。如果你打算在你的程序中使用更多的桌面集成功能,可能还是值得一试的。
您提到“默认文档目录取决于用户区域设置”。这个信息存储在哪里?即当前用户的语言环境,也是每个语言环境的路径等(我只是想明确地知道问题所在) – TheCodeArtist
恐怕您必须使用ProcessBuilder来运行xdg-user-dir或者自己解析'.config/user-dirs.dirs'。 –
@DenisTulskiy你说得对。我的第一反应是建议从代码中运行'xdg-user-dir'。然而,我仍然想知道本地化,即**用户区域设置**“商业”是否适合。因此,等待更多细节...... – TheCodeArtist