无法使用lua.exe

核心原因

Chocolatey 安装 lua51 时,为了避免和其他 Lua 版本(如 Lua 5.2/5.3)冲突,将可执行文件命名为 lua5.1.exe(而非通用的 lua.exe),因此系统能识别 lua5.1 命令,但无法识别 lua 命令------本质是缺少 lua.exe 这个"别名"

解决方法(二选一,推荐方法1)

方法1:创建符号链接(推荐,无冗余文件,系统级生效)

通过管理员权限创建 lua.exe 指向 lua5.1.exe 的软链接,相当于给 lua5.1.exe 加一个"lua"的别名:

  1. 按下 Win + X → 选择「命令提示符 (管理员)」(或「终端 (管理员)」);

  2. 先执行以下命令,找到 lua5.1.exe 的实际路径:

    复制代码
    where lua5.1
    • 输出示例:C:\ProgramData\chocolatey\bin\lua5.1.exe(记下来这个路径);
  3. 执行 mklink 命令创建软链接(替换成你查到的路径):

    复制代码
    mklink "C:\ProgramData\chocolatey\bin\lua.exe" "C:\ProgramData\chocolatey\bin\lua5.1.exe"
    • 提示「创建符号链接成功」即完成;
  4. 关闭所有终端,重新打开普通 CMD ,执行:

    复制代码
    lua -v

    此时会正常输出 Lua 5.1.5 版本号。

方法2:复制并重命名文件(简单,无权限风险)

直接复制 lua5.1.exe 并重命名为 lua.exe,本质是生成一个"副本别名":

  1. 执行 where lua5.1 找到文件路径(如 C:\ProgramData\chocolatey\bin);

  2. 打开该路径的文件夹(比如在文件管理器输入 C:\ProgramData\chocolatey\bin);

  3. 找到 lua5.1.exe,右键「复制」→ 右键「粘贴」→ 将新文件重命名为 lua.exe

  4. 重新打开 CMD,执行 lua -v 验证。

关键验证 & 注意事项

  1. 若执行 mklink 提示「权限不足」:确保终端是管理员身份 ,且目标路径(如 C:\ProgramData\chocolatey\bin)没有写入限制;

  2. 无需担心冲突:你只装了 Lua 5.1,创建 lua.exe 别名不会和其他版本冲突;

  3. 不影响 sysbench 使用:即使不创建 lua 别名,sysbench 也能自动识别 lua5.1.exe(sysbench 优先找 Lua 5.1,不管命令名),你编写的 sysbench Lua 脚本完全可以正常运行。

最终验证

完成后执行以下命令,均应正常输出版本号:

复制代码
lua -v    # 现在能识别
lua5.1 -v # 原有命令仍可用

至此,lua 命令即可正常使用,你可以直接用 lua 脚本名.lua 运行 Lua 脚本(包括 sysbench 自定义脚本)。

相关推荐
Huanzhi_Lin20 小时前
skynet笔记
笔记·lua·skynet·actor·actor模型
笨鸟先飞的橘猫1 天前
MMO游戏中的“跨服团队副本”匹配与状态同步系统
分布式·学习·游戏·lua·skynet
Kiyra2 天前
限流不是加个计数器就行:用 Lua 脚本实现多维度原子限流
开发语言·人工智能·网络协议·职场和发展·架构·lua·ai-native
谙弆悕博士3 天前
Lua学习笔记
c语言·开发语言·笔记·学习·lua·创业创新·业界资讯
weixin_408099673 天前
触动精灵调用身份证OCR识别API实现智能信息录入(Lua脚本实战)
junit·ocr·lua·自动化脚本·石榴智能·身份证ocr识别·触动精灵
卷毛的技术笔记4 天前
双十一零点扛过10倍流量洪峰:Sentinel与Redis+Lua的分布式限流深度避坑指南
java·redis·分布式·后端·系统架构·sentinel·lua
庞轩px5 天前
第五篇:分布式锁实战——Lua脚本原子操作与库存扣减的强一致性
redis·lua·分布式锁·synchronized·原子性·零超卖
笨鸟先飞的橘猫5 天前
lua——哈希表详细学习
学习·lua·散列表
晴夏。9 天前
unlua实现原理
游戏·ue5·ue4·lua·ue·unlua
晴夏。9 天前
c++调用lua的方法
c++·游戏引擎·lua·ue