【发布时间】:2012-03-24 01:49:43
【问题描述】:
我在 rake 脚本中有 2 个方法,这两个方法都使用 system "<SomeCommand>",一个用于使用文件调用 JSLint,效果很好。一种是调用 YUICompressor,它总是失败并返回 127 错误代码。
奇怪的是我可以调用 ruby 脚本正在运行的 EXACT 命令并且它工作正常,我将它传递给它一个文件,它会输出一个缩小版本。但是,当我运行它时,它认为 ruby 脚本总是会爆炸......
基本上是这样的:
system java -jar c:/dump/tools/yuicompressor-2.7.4.jar c:/dump/src/input_file.js c:/dump/src/output_file.min.js
我知道所有绝对路径看起来都很糟糕,但这就是构建脚本当前在绝对路径下工作的方式,但是如果我只是在命令行上调用它,该命令可以正常工作,但是当我通过 Rake/Ruby 运行它时只是炸弹......但是对 JSLint 的另一个系统调用工作正常,但是通过绝对路径调用批处理文件......
在网上找不到任何相关信息,有人看到上面有什么奇怪的地方吗?
只是为了确认所有文件都存在于相关位置。
【问题讨论】:
-
你试过
java的绝对路径吗? -
以 127 退出通常意味着“找不到命令”,因此很可能找不到
java。 -
尝试比较 shell $PATH(一个来自 bash,一个来自 ruby 脚本),看看你想出了什么。
-
我之前尝试过添加java绝对路径,仍然给我127错误,但如果它没有找到它与exe的实际绝对路径,我怀疑路径会改变事情。 $PATH 似乎在 ruby 脚本中也是空的,不确定这意味着什么.. 它也是一个 windows 环境
标签: ruby command-line rake