-1

我正在尝试从我的 ruby​​ 代码中执行一个 java 程序。

我的代码是这样的:

    cmd = "java -cp \"path/lib/*\" com.blah.blah"


#    %x[#{cmd}]
#    `#{cmd}`
#    Kernel.system(cmd)
    Kernel.exec(cmd)

我的问题是命令没有以任何一种方式成功运行。我知道 %x, 反引号在子外壳中运行,因此可能缺少一些环境变量。但是我希望 Kernel.system、Kernel.exec 能够成功。

如果我直接在 shell 中键入命令,该命令运行良好。调试这个有什么帮助吗?

谢谢!

4

1 回答 1

0

原来问题是我没有关闭我正在创建的文件。

显然,当我直接从 shell 或直接从 .sh 调用它时,这很好,因为 ruby​​ 脚本已经退出。

但是,当我从 Ruby 脚本调用它时,它将无法访问该文件并会产生问题。

底线:关闭您的文件,否则会耽误半天的工作!

于 2011-12-01T20:11:25.850 回答