【问题标题】:Unable to create log files in "c\program files\appName\" or "c\program files (X86)\appName\"无法在“c\program files\appName\”或“c\program files (X86)\appName\”中创建日志文件
【发布时间】:2014-01-16 11:37:10
【问题描述】:

我正在使用 JDK 1.6.0.25windows 7 64 位操作系统,并且我在 java 中有一个独立的应用程序。安装后如果我打开应用程序,它会创建日志文件夹和 build 目录中的 applogs.log 文件。
当我将它安装在 "c\program files\""c\program files (X86)\" 目录中时,如果我打开应用程序,它不会创建日志文件夹和applogs.log 文件。为了创建日志,我简单地使用了 java 的“io api”。

关于这个问题我查了很多,发现c\program files\c\program files (X86)\没有写权限

sol 1:通过更改文件夹的安全选项来更改权限。
sol 2: 使用 java 7 并使用方法 setPosixFilePermissions() 更改权限。

我不想使用以上两种解决方案,因为存在一些依赖性。 我还有一个应用程序并使用log4j api 拥有日志记录工具。我发现它会在上述条件下创建日志文件。 请给我一些除上述解决方案之外的解决方案或log4j api 的创建方式。

【问题讨论】:

    标签: java log4j


    【解决方案1】:

    你应该使用用户的主目录来做类似的事情。最简单的方法是读取Java System属性user.home

    System.getProperty("user.home")

    How to get local application data folder in Java?

    【讨论】:

    • 感谢本杰明的回复。但是我在用户主目录或其他地方创建日志文件没有任何问题。我的要求只是安装在 c\program 文件或 c\programs 文件(X86)中,启动应用程序后,它应该在该安装目录中创建日志文件。
    猜你喜欢
    • 2017-02-01
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 2014-08-28
    • 2012-04-21
    • 2015-02-03
    • 1970-01-01
    相关资源
    最近更新 更多