【问题标题】:permission denied error while reading/writing file by application(.jar) in mac在mac中通过应用程序(.jar)读取/写入文件时权限被拒绝错误
【发布时间】:2013-01-09 06:29:32
【问题描述】:

我在 swing 中创建了一个应用程序,还为同一个应用程序创建了一个安装程序。

安装程序和应用程序都可以在 Windows 系统上完美运行。

但我的问题是,当我尝试在 mac os 中运行它时,它并不能完美地处理所有数据。

我发现在我的应用程序中我使用了“.xyz”类型的属性文件和目录来保存一些数据,所以在 mac os 中“。”前置用作隐藏文件。

它给出了类似的错误

Error: /Users/userxyz/Library/Application Support/.appdir/.propertydir/.logininfo (Permission denied)

java.io.IOException: Permission denied
    at java.io.UnixFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(File.java:883)

有没有人有办法解决上述错误?

【问题讨论】:

  • 您可能应该阅读一下操作系统中文件权限的工作原理。
  • @AndrewThompson 需要创建安装程序以提供一些信息,并在使用一些安装程序工具启动应用程序之前在用户的主目录中创建一些目录和文件。
  • 那么JWS 就可以了。这是demo. of the JWS ExtensionInstallerService“安装程序的目的是执行标准 JWS 行为无法处理的任何应用程序设置/下拉,即在第一次启动时缓存类/资源,并清除它们在卸载时。”
  • 我想要解决错误的解决方案,因为窗口中的所有事情都正确,但问题出在 mac os 中。
  • 正如@AndrewThompson 建议的那样,您应该认真看待javawebstart;除此之外,我还引用了一些指导方针here

标签: java macos swing


【解决方案1】:

问题出在 Mac OS 中。

不,问题是没有权限写入userxyzLibrary 目录。 Java WebStart 通常绰绰有余,但您至少应该遵循Technical Q&A QA1170: Important Java Directories on Mac OS X 中推荐的方法。注意用户偏好、用户数据和应用程序支持之间的区别,每一个都植根于System.getProperty("user.home")。另请注意,java.util.Preferences 默认使用 ~/Library/Preferences/your.qualified.name。此外,没有理由使用隐藏文件名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2010-09-22
    • 2017-06-20
    相关资源
    最近更新 更多