我目前正在编写一个需要输出java jar的ruby应用程序。如何用ruby获取java输出
我目前无法使用open3从java命令获得任何输出。
但是,我用'ls'成功地测试了下面的ruby代码。我也尝试使用java的绝对路径:'/ opt/java/jre/bin/java'没有成功。
谢谢你,提前
我目前正在编写一个需要输出java jar的ruby应用程序。如何用ruby获取java输出
我目前无法使用open3从java命令获得任何输出。
但是,我用'ls'成功地测试了下面的ruby代码。我也尝试使用java的绝对路径:'/ opt/java/jre/bin/java'没有成功。
谢谢你,提前
java -version
写至标准错误,所以下面应该工作:
@output = stderr.read
在Linux上,你可以在输出由supressing或者STDERR或去壳检查STDOUT:
java -version >/dev/null
仍然打印信息。
我工作过,非常感谢你=)我一直对我的头撞了一个小时大声笑 – 2012-04-27 16:49:41
你需要open3吗?在Ruby 1.9,我会做:
pipe = IO.popen([ '/path/to/java', '-jar', '/path/to/jarfile.jar',
{SDTERR=>STDOUT} ]
pipe.close_write
puts pipe.readlines
但是往往有很多更多的这个运行Java程序(设置CLASSPATH,例如);因此运行运行Java程序的shell脚本可能会更好。
也许有输出等待从标准错误 – theglauber 2012-04-27 16:41:48
读为[尼古拉斯B.](http://stackoverflow.com/users/916657/niklas-b)已经应答,'的java -version'写入'STDERR' 。如果这不能解释您遇到的问题,请更新问题以显示更接近您要执行的jar的内容。 – mikej 2012-04-27 16:44:57
是的......我猜测命令与jar文件输出一个错误(要么没有找到jar文件,或其他一些事情出错了,可能是CLASSPATH中缺少的东西)。无法确定没有更多的信息。 – theglauber 2012-04-27 16:48:52