代码之家  ›  专栏  ›  技术社区  ›  CodeBuddy

如何以独立于平台的方式为Java应用程序选择日志文件的位置?

  •  1
  • CodeBuddy  · 技术社区  · 15 年前

    我正在写一个java应用程序。目前,这会在.jar文件所在的目录中生成一个名为“trace.txt”的文件。这有时会导致文件权限问题,例如写入C:\Program Files\Foo\trace.txt。

    在对SO进行了一些研究之后,一般的意见似乎是为给定的用户登录到Application Data\Foo\。其他操作系统的位置不一样。

    在这种情况下最好的做法是什么?我正在使用java.util.logging。

    3 回复  |  直到 15 年前
        1
  •  3
  •   lucas1000001    15 年前

    在Linux或Linux中,您可以始终使用由~标识的用户\u HOME

    你会看到很多应用程序都有自己的.myappname文件夹,并将配置文件、日志放在其中。

    这将映射到linux中的/home/user/.myapp或windows中的C:/Documents and settings/user/.myapp,并且应该始终是可写的。

        2
  •  1
  •   Pascal Thivent    15 年前

    默认临时文件路径 你可以通过 java.io.tmpdir

        3
  •  0
  •   ttchong    15 年前

    如果您的java程序需要“安装”(可能只是设置一些配置文件,将二进制文件移动到某个位置等),那么在安装过程中处理权限内容(在任何平台上)或其他特定于平台的内容,无论是日志文件、配置,缓存用户设置等。安装通常意味着用户必须以超级用户权限运行安装脚本/程序。所以,你可以这么做。

    通常,如果应用程序存储用户特定的数据,则可以将其存储到/home//。例如,在类似Linux的系统中,windows7中的Users\ttchong\AppData(我对Window不是很熟悉,如果我错了,请纠正我)。代码还需要处理用户路径,以允许多个用户对程序进行不同的设置。

    否则,如果是像日志文件这样的程序信息,你不介意一起转储,我还是喜欢你现在这样做,把它存储在jar文件的同一个目录下,或者用“安装”技巧更好地存储在同一个目录下的日志文件夹中。