我正在尝试从我的ruby代码执行java程序。
我的代码类似于:
cmd = "java -cp \"path/lib/*\" com.blah.blah"
# %x[#{cmd}]
# `#{cmd}`
# Kernel.system(cmd)
Kernel.exec(cmd)
我的问题是命令无法以任何方式成功运行。我知道%x,反引号在子shell中运行,所以可能缺少一些env变量。 但是我希望Kernel.system,Kernel.exec能够成功。
如果我直接在shell中输入命令,该命令运行正常。有没有帮助调试这个?
谢谢!
答案 0 :(得分:0)
原来问题是我没有关闭我正在创建的文件。
显然,当我直接从shell调用它或直接从.sh调用它时,因为ruby脚本已经退出了。
然而,当我从Ruby脚本调用它时,它将无法访问该文件并会产生问题。
底线:关闭你的文件,否则半天工作!