You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何执行外部程序 调用AutoHotKey脚本报Access denied错误如何解决

问题原因

  1. AutoHotkey调用路径填写错误:你填写的路径仅指向AutoHotkey的安装文件夹,系统无法直接执行文件夹,需补全到具体的.exe可执行文件
  2. 代码存在语法问题:你定义的AutoHotkey路径变量名为autoHotKeyScript,但exec方法中传入的是未定义的autoHotKey变量
  3. 权限限制:C:\Program Files属于系统级保护目录,普通权限启动的Java进程没有权限直接执行该目录下的程序,会触发权限拒绝报错

解决方案

你可以按以下步骤调整:

  • 补全AutoHotkey可执行文件路径:默认64位安装版的可执行文件路径为C:\Program Files\AutoHotkey\AutoHotkey.exe,32位版本对应为C:\Program Files\AutoHotkey\AutoHotkey32.exe,请根据你实际安装的版本调整路径
  • 权限问题可二选一解决:
    • 方案1:将AutoHotkey的exe文件和你的ahk脚本迁移到非系统保护的普通目录(例如你自己新建的C:\DevTools\目录),无需申请管理员权限即可正常调用
    • 方案2:右键点击你的Java程序启动入口,选择「以管理员身份运行」,即可获得Program Files目录的执行权限
  • 修正代码中变量名不匹配的问题

修正后的参考代码

Runtime runtime = Runtime.getRuntime();

try {
    Thread.sleep(100);
} catch (InterruptedException e) {
    e.printStackTrace();
}

try {
    String actualPath = "C:\\Users\\me\\Desktop\\Coding\\test.ahk";
    // 此处请替换为你自己的实际AutoHotkey可执行文件路径
    String autoHotKeyExe = "C:\\Program Files\\AutoHotkey\\AutoHotkey.exe";
    runtime.exec(new String[] {autoHotKeyExe, actualPath});
} catch (IOException e) {
    e.printStackTrace();
}

内容的提问来源于stack exchange,提问作者user14732842

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 03:39:03