相关疑难解决方法(0)

获取本地应用程序数据目录路径的跨平台方式是什么?

我需要的是一种独立于平台的获取本地应用程序数据目录路径的方法.System.getenv("LOCALAPPDATA")似乎只适用于Windows.我该怎么做?

java cross-platform

42
推荐指数
4
解决办法
2万
查看次数

在linux和macintosh上查找"应用程序数据"的目录

我有一个基于LWJGL的游戏引擎,要运行它我需要将所需的本机库放在用户的计算机上.在Windows上,我通过以下方式找到Application Data目录:

System.getenv("APPDATA");
Run Code Online (Sandbox Code Playgroud)

一切都很容易,很好.我创建一个File对象,必要时调用mkDir,如果文件不在机器上,则写入文件.

(注:创建的目录不应该是一个临时文件,因为我想为未来的运行.此外,保存提取文件,创建该目录给出了保存游戏和其他类似数据的简单和易于使用的文件夹.)

但是,如果计算机是Macintosh或Linux,我想做类似的事情,但我不熟悉如何使用这两个系统,我并没有真正处于良好的测试位置.我目前找到目标目录的方法是这样的:

private static String defaultDirectory()
{
    String OS = System.getProperty("os.name").toUpperCase();
    if (OS.contains("WIN"))
        return System.getenv("APPDATA");
    else if (OS.contains("MAC"))
        return System.getProperty("user.home") + "/Library/Application "
                + "Support";
    else if (OS.contains("NUX"))
        return System.getProperty("user.home");
    return System.getProperty("user.dir");
}
Run Code Online (Sandbox Code Playgroud)

那么,这是正确的方法吗?我正在尝试访问Mac上的应用程序支持(我已经知道这相当于Windows上的AppData文件夹)而我正在尝试在Linux上使用类似的文件夹,但我不确定是否"用户.家"找到正确的.

java linux directory macos file

14
推荐指数
1
解决办法
1万
查看次数

简单的Java桌面应用程序:配置文件及其放置位置

这似乎是一个绝对的新手问题,但是我对应该成为基本问题的问题y之以鼻。

我正在用Java编写一个简单的桌面应用程序。(实际上是Scala,但请通过。)它以Windows计算机为目标。我想将其打包并使其可运行,而无需创建安装程序,也无需弄乱Windows注册表。我想要一个配置文件,用户可以查找和编辑该配置文件以自定义设置。(例如,以SublimeText的用户首选项的方式。)

我设想以下结构:

my-application/
|- bin/
   |- myApp.class (or myApp.jar, if you prefer)
|- files/
   |- config/
      |- config.json
   |- output/
      |- output.xlsx
|-runMyApp.bat
Run Code Online (Sandbox Code Playgroud)

在Eclipse内部,相对路径倾向于解析到myApplication/目录,但是如果我从命令行运行应用程序,则它们会解析为-cp参数。(通常是bin/目录。)

我天真吗?我是否完全弄错了范例?

在我看来,能够始终围绕可执行文件定位文件系统中的文件(资源)将是一件基本的事情。

请帮忙!

java eclipse scala relative-path

3
推荐指数
1
解决办法
1276
查看次数

标签 统计

java ×3

cross-platform ×1

directory ×1

eclipse ×1

file ×1

linux ×1

macos ×1

relative-path ×1

scala ×1