如何在 Java 中获得主文件夹(或 appdata 文件夹,对于 Windows)的写入权限?

2024-02-26

我试图在 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

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

您可以在 Windows 中创建 run.vbs 脚本来启动您的 jar https://stackoverflow.com/questions/13060215/vbscript-single-line-as-administrator:

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Java 中获得主文件夹(或 appdata 文件夹,对于 Windows)的写入权限? 的相关文章

  • 使用 Ant 将非代码资源添加到 jar 文件

    我正在将 java 应用程序打包成 jar 文件 我正在使用 ant 和 eclipse 我实际上需要在 jar 中直接在根文件夹下包含几个单独的非代码文件 xml 和 txt 文件 而不是与代码位于同一位置 我正在尝试使用includes
  • JVisualVM/JConsole 中的 System.gc() 与 GC 按钮

    我目前正在测试处理 XML 模式的概念验证原型 并围绕一个非常消耗内存的树自动机外部库 我已经获得了源代码 构建 我想绘制 真实峰值 堆 随着模式大小的增加 不同运行的内存消耗 使用的指标符合我的目的并且不会影响问题 或者至少是它的合理近似
  • 在 Wildfly 中与 war 部署共享 util jar 文件

    假设我有一个名为 util jar 的 jar 文件 该 jar 文件主要包含 JPA 实体和一些 util 类 无 EJB 如何使这个 jar 可用于 Wildfly 中部署的所有 war 无需将 jar 放置在 war 的 WEB IN
  • 大数据使用什么数据结构

    我有一个包含一百万行的 Excel 工作表 每行有 100 列 每行代表一个具有 100 个属性的类的实例 列值是这些属性的值 哪种数据结构最适合在这里使用来存储数百万个数据实例 Thanks 这实际上取决于您需要如何访问这些数据以及您想要
  • 当客户端关闭连接时,Spring StreamingResponseBody 请求线程未清理

    我在控制器中有一个端点 它返回一个StreamingResponseBody 用于向客户端发送文件 其代码大致如下 RestController RequestMapping value api public class Controlle
  • 什么时候可以在 Java 中使用 Thead.stop() ?

    Thread stop 的 Java 文档听起来好像如果您调用 Thread stop 世界就会终结 已弃用 这种方法本质上是不安全的 停止线程 Thread stop 导致它解锁所有已锁定的监视器 作为未经检查的 ThreadDeath
  • 是否可以通过编程方式查找 logback 日志文件?

    自动附加日志文件以支持电子邮件会很有用 我可以以编程方式设置路径 如以编程方式设置 Logback Appender 路径 https stackoverflow com questions 3803184 setting logback
  • 套接字的读写如何同步?

    我们创建一个套接字 在套接字的一侧有一个 服务器 在另一侧有一个 客户端 服务器和客户端都可以向套接字写入和读取 这是我的理解 我不明白以下事情 如果服务器从套接字读取数据 它在套接字中是否只看到客户端写入套接字的内容 我的意思是 如果服务
  • 使用 Guice 优化注册表

    你好 今天思考了一种优化 有一些疑问 语境 我正在使用 Guice 2 进行 Java 开发 在我的网络应用程序中 我有一个转换器注册表 可以即时转换为某种类型 转换器描述如下 public class StringToBoolean im
  • 串行 I/O 与 Windows/Windows CE 重叠/不重叠

    抱歉 这不是一个大问题 但更多的是帮助那些在这些特定问题上遇到问题的人 我正在解决的问题需要使用串行 I O 但主要在 Windows CE 6 0 下运行 然而 最近有人问我该应用程序是否也可以在 Windows 下运行 所以我开始着手解
  • 内部存储的安全性如何?

    我需要的 对于 Android 我需要永久保存数据 但也能够编辑 并且显然是读取 它 用户不应访问此数据 它可以包含诸如高分之类的内容 用户不得对其进行编辑 我的问题 我会 并且已经 使用过Internal Storage 但我不确定它实际
  • 在 SWT/JFace RCP 应用程序中填充巨大的表

    您将如何在 SWT 表中显示大量行 巨大是指超过 20K 行 20 列的东西 不要问我为什么需要展示那么多数据 这不是重点 关键是如何让它尽可能快地工作 这样最终用户就不会厌倦等待 每行显示某个对象的实例 列是其属性 一些 我想使用 JFa
  • 返回 Java 8 中的通用函数接口

    我想写一种函数工厂 它应该是一个函数 以不同的策略作为参数调用一次 它应该返回一个函数 该函数根据参数选择其中一种策略 该参数将由谓词实现 嗯 最好看看condition3为了更好的理解 问题是 它没有编译 我认为因为编译器无法弄清楚函数式
  • JMenu 中的文本居中

    好吧 我一直在网上寻找有关此问题的帮助 但我尝试的任何方法似乎都不起作用 我想让所有菜单文本都集中在菜单按钮上 当我使用setHorizontalTextPosition JMenu CENTER 没有变化 事实上 无论我使用什么常量 菜单
  • Hamcrest Matchers - 断言列表类型

    问题 我目前正在尝试使用 Hamcrest Matchers 来断言返回的列表类型是特定类型 例如 假设我的服务调用返回以下列表 List
  • Android:无法发送http post

    我一直在绞尽脑汁试图弄清楚如何在 Android 中发送 post 方法 这就是我的代码的样子 public class HomeActivity extends Activity implements OnClickListener pr
  • 如何使用play框架上传多个文件?

    我在用play framework 2 1 2 使用java我正在创建视图来上传多个文件 我的代码在这里 form action routes upload up enctype gt multipart form data
  • org.apache.commons.net.io.CopyStreamException:复制时捕获 IOException

    我正在尝试使用以下方法中的代码将在我的服务器中创建的一些文件复制到 FTP 但奇怪的是我随机地低于错误 我无法弄清楚发生了什么 Exception org apache commons net io CopyStreamException
  • 泛型、数组和 ClassCastException

    我想这里一定发生了一些我不知道的微妙事情 考虑以下 public class Foo
  • 配置“DataSource”以使用 SSL/TLS 加密连接到 Digital Ocean 上的托管 Postgres 服务器

    我正在尝试托管数据库服务 https www digitalocean com products managed databases on 数字海洋网 https en wikipedia org wiki DigitalOcean 创建了

随机推荐

  • 通过反射调用 getter 的最佳方式

    我需要获取具有特定注释的字段的值 因此通过反射我能够获取此字段对象 问题是这个字段将始终是私有的 尽管我事先知道它总是有一个 getter 方法 我知道我可以使用 setAccesible true 并获取它的值 当没有 Permissio
  • Yii 不是自动的,包括 jquery

    我在使用 Yii 和 Jquery 时遇到一个奇怪的问题 当我在本地主机上打开一个使用 ajax jquery 的页面时 Yii 会自动添加对页面的资产包含调用 但是 当我在服务器上运行相同的代码时 Yii 不会执行此
  • Django 以 10 为基数的 int() 的文字无效

    我正在 Django 中创建一个简单的搜索结果页面 用户通过文本搜索并从下拉列表中添加城市字段 查询如下 if query in request GET and request GET query city request GET city
  • 如何在椭圆形边框内设置圆形图标元素的样式?

    我正在尝试编写此代码 但我在如何处理边框和其他东西中的不同颜色方面遇到了困难 到目前为止 我的 html 代码中有 buttonfilter color 0065FC background color DEEBFF height 20px
  • 如何在 Git 中查看文件历史记录?

    通过 Subversion 我可以使用乌龟SVN https en wikipedia org wiki TortoiseSVN查看文件的历史记录 日志 我怎样才能用 Git 做到这一点 我只是寻找特定文件的历史记录 然后比较不同版本的能力
  • 如何在 Angular 2 中创建导入 QuillJS 模块的组件?

    我对 Angular 2 和 TypeScript 还很陌生 我正在使用 AngularCLI 和 NPM 创建我的 Angular 项目 我已经使用 NPM 将 quill 节点模块安装到我的项目中 我现在正在尝试创建一个组件 在其中我可
  • DataGridView 自动调整大小但限制最大列大小

    在我的 C 4 0 应用程序中 我有一个 DataGridView 来显示一些数据 我希望列的大小与内容相对应 因此我将 AutoSizeColumnsMode 设置为 AllCellsExceptHeader 但我想限制列的增长超过某个值
  • Android M 检测权限对话框是否可见

    如何以编程方式确定用户是否可以看到权限对话框 以便我知道在这种情况下该怎么做 Override protected void onStart super onStart ActivityManager am ActivityManager
  • iOS 11 beta 4 呈现渲染缓冲区崩溃

    当调用 EAGLContext PresentRenderbuffer 方法时 我的应用程序在 iOS 11 beta 4 15A5327g 上崩溃 仅当我在 Xcode 中调试时才会发生这种情况 当我手动启动应用程序时 它不会崩溃 在低于
  • 从 android 中的 tabactivity 调用 listactiviy

    是否可以通过tab Activity调用listactivity 基本上 我正在开发一个带有 3 个选项卡的应用程序 为此我使用 tabactivity 此外 在其中一个选项卡中我想要一个列表视图 所以我从列表活动中派生出来 现在我想在列表
  • 如何让 VS Code 在打开文件时不打开文件资源管理器窗口

    我在 Mac 上 当我使用 VS Code 打开文件时CMD O 如下图所示 我有一台不同的机器 使用CMD O打开一个小文件资源管理器作为可编辑的地址栏 请参阅其他图像 我一直无法弄清楚哪些设置选项可以配置此功能 如何让 VS Code
  • 无法获取以 Json 形式返回的 Yii2 对象数据

    我是 Yii2 框架和 PHP 的新手 当我尝试从服务器检索模型数据时json 我得到一个空结果 但是 当我使用var dump 我得到一个非空结果 控制器类代码 public function actionIndex client new
  • bootstrap-select 下拉选项有时未加载

    我正在使用 bootstrap select 1 12 4 版本和 Angular 4 3 5 我正在尝试使用 http 调用和异步管道加载下拉选项 我面临的问题是 刷新页面时 大多数情况下都不会加载选择下拉选项 但有时选项会加载 我不确定
  • 创建存储过程(如果尚不存在)

    我想检查存储过程列表是否存在 我希望这一切都在一个脚本中一一完成 到目前为止我有这样的格式 USE myDatabase GO IF NOT EXISTS SELECT FROM sys objects WHERE type P AND n
  • 如何设置 SUDO_ASKPASS 环境变量?

    设置 SUDO ASKPASS 环境变量意味着什么 你怎么做呢 我在哪里声明 我正在尝试使用 shell 脚本在几分钟后关闭我的计算机并使用 java 启动此脚本 所以我不确定我会使用 SUDO ASKPASS为了这 基本上的价值 SUDO
  • 显示提交之间的差异

    我正在使用 GitUbuntu 10 04 https en wikipedia org wiki Ubuntu version history Ubuntu 10 04 LTS 28Lucid Lynx 29 清醒山猫 我已经向我的主人做
  • 分叉存储库 - 每次与上游同步时解决相同的合并冲突

    我已经分叉了一个存储库 但我想经常使其与上游存储库保持同步 我用自己的实现交换了一些模块 这意味着每次我想与上游存储库同步时 我都会一遍又一遍地遇到相同的合并冲突 我的问题是 有没有办法告诉 Git 对于这些情况使用我自己的实现 而不是将其
  • 转换内容位于 CDATA 内的 xml 元素

    我有一个如下所示的 xml 片段
  • Android EditText 结合InputFilter vs TextWatcher

    基本上我想了解更深入的差异和使用场景InputFilter and TextWatcher 根据文档 InputFilter 输入过滤器可以附加到可编辑项以限制可以对其进行的更改 TextWatcher 当某个类型的对象附加到可编辑对象时
  • 如何在 Java 中获得主文件夹(或 appdata 文件夹,对于 Windows)的写入权限?

    我试图在 home appdata 文件夹中保存一些用户设置 但是当我使用 dir canwrite 时它返回 false 这是我用来确定 home appdata 文件夹的代码 public static String getAppDat