2

我正在尝试在我的 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("file.separator")的常量)

我现在想将文档存储在用户文档的文件夹中。但我没有名为 XDG_DOCUMENTS_DIR 的环境变量。我有具有该 XDG 配置的“.config/user-dirs.dirs”文件,以及直接返回该路径的“xdg-user-dir DOCUMENTS”。

更糟糕的是,默认文档目录取决于用户区域设置。

在 java 应用程序上使用配置的 Documents 目录的最佳方式是什么?

4

2 回答 2

1

在为此寻找答案时,我找到了xdg-java。我尚未对其进行测试,但似乎完全符合您(和我)的要求。

它还没有实现所有规范,但它确实实现了我现在需要的那些,我猜作者会接受补丁。

于 2014-06-08T19:39:07.103 回答
1

在 Gnome 上有 java-gnome 支持库,它正在执行本地调用以更好地与 gnome 集成。它可以通过调用来获取用户目录的路径Glib.getUserSpecialDir。我自己没有尝试过这个,如果您打算在程序中使用更多桌面集成功能,可能值得一试。

于 2014-04-06T13:46:36.473 回答