我正在尝试在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
答案 0 :(得分:1)
您需要以管理员身份启动Java进程。
You can create a run.vbs script in Windows to start your jar:
Set oShell = CreateObject("Shell.Application")
oShell.ShellExecute "cmd.exe", , , "runas", 1
oShell.Run "java -jar myjar.jar"
要使程序始终以管理员身份运行,您需要至少以管理员身份运行一次并更新注册表项。