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

如何让Windows下的Dart命令行程序不弹出CMD/Shell窗口?

解决Dart命令行程序运行时不显示终端窗口的方法

Windows平台

方法1:用VBS脚本包装执行

  1. 先将Dart代码编译成可执行文件:
dart compile exe your_script.dart -o your_program.exe
  1. 创建后缀为.vbs的脚本文件(比如background_run.vbs),写入以下内容:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run """C:\绝对路径\your_program.exe""", 0, False
  • 参数0表示隐藏窗口,False表示脚本无需等待程序执行完成即可退出。
  1. 双击运行这个VBS脚本,程序会在后台静默执行,不会弹出CMD窗口。

方法2:修改可执行文件的子系统类型

用Resource Hacker这类工具打开编译好的exe文件,找到PE头 -> 可选头 -> 子系统,将控制台子系统改为Windows子系统,保存后双击exe就不会弹出窗口。

Linux/macOS平台

后台运行命令

编译成可执行文件后,用nohup命令在后台启动,同时重定向输出避免占用终端:

nohup ./your_program > /dev/null 2>&1 &
  • nohup保证关闭终端后程序仍能运行,> /dev/null 2>&1将标准输出和错误输出全部丢弃。

双击运行(macOS)

创建一个Shell脚本(比如run_background.sh):

#!/bin/bash
nohup /绝对路径/your_program > /dev/null 2>&1 &

给脚本添加执行权限:

chmod +x run_background.sh

设置终端允许双击执行脚本后,双击该脚本即可静默启动程序。

额外提示

确保程序没有未处理的输出(包括错误信息),即使代码里没写print,运行时的隐性错误输出也可能导致终端窗口被强制保留,所以运行时重定向输出到空设备是稳妥的做法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 12:45:04