使用 ChildProcess 启动进程时“系统找不到指定的文件”

Posted

技术标签:

【中文标题】使用 ChildProcess 启动进程时“系统找不到指定的文件”【英文标题】:"The system cannot find the file specified" when starting process using ChildProcess 【发布时间】:2012-07-08 20:16:10 【问题描述】:

当我运行以下代码时:

require 'childprocess'

process = ChildProcess.build("cucumber")
process.start

(似乎任何其他宝石都可以代替黄瓜)

我得到错误:

C:/Ruby193/lib/ruby/gems/1.9.1/gems/childprocess-0.3.3/lib/childprocess/windows/process_builder.rb:87:in `create_process': The system cannot
 find the file specified. (2) (ChildProcess::LaunchError)
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/childprocess-0.3.3/lib/childprocess/windows/process_builder.rb:34:in `start'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/childprocess-0.3.3/lib/childprocess/windows/process.rb:63:in `launch_process'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/childprocess-0.3.3/lib/childprocess/abstract_process.rb:67:in `start'
        from env.rb:4:in `<main>'

当我在 Windows cmd 中使用例如cucumber,进程正常启动。

我该如何解决?为什么会发生?

【问题讨论】:

【参考方案1】:

几天前遇到同样的问题。 您可以将 ChildProcess 指向 cucumber.bat 文件:

require 'childprocess'

process = ChildProcess.build("C:\\Ruby193\\bin\\cucumber.bat")
process.start

【讨论】:

以上是关于使用 ChildProcess 启动进程时“系统找不到指定的文件”的主要内容,如果未能解决你的问题,请参考以下文章

Windows进程激活服务错误2:系统找不到指定的文件

操作系统编制实现进程的管道通信的程序

kafka win10启动为啥提示 系统找不到指定的路径

如何访问父对象的句柄?

ChildProcess:标准输入没有被 Python readline 读取

取消并行进程