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"

プログラムを常に管理者として実行するには、少なくとも 1 回は管理者として実行し、レジストリ キーを更新する必要があります。

于 2012-11-18T14:27:08.910 に答える