3

我试图在 home/appdata 文件夹中保存一些用户设置,但是当我使用 dir.canwrite() 它返回 false。这是我用来确定 home/appdata 文件夹的代码:

public static String getAppDataPath() {
    if (System.getProperty("os.name").contains("Windows")) {
        return System.getenv("APPDATA");
    } else {
        return getUnixHome();
    }
}

public static String getUnixHome() {
    String home = System.getProperty("user.home");
    return home != null ? home : "~";
}

这是尝试 mkdir 的代码:

public static boolean checkExistenceDir(String path) {
    File dir = new File(path);
    if(!dir.exists()) {
        dir.mkdir();
    }
}

有问题的路径是:

getAppDataPath() + ".foo" + File.separatorChar
4

1 回答 1

1

您需要以管理员身份启动 Java 进程。

您可以在 Windows 中创建一个 run.vbs 脚本来启动您的 jar

Set oShell = CreateObject("Shell.Application")
oShell.ShellExecute "cmd.exe", , , "runas", 1
oShell.Run "java -jar myjar.jar"

要使程序始终以管理员身份运行,您需要它至少以管理员身份运行一次并更新注册表项。

于 2012-11-18T14:27:08.910 回答