如何使用ruby获取java输出
我目前正在编写一个需要输出java jar的ruby应用程序。
我目前无法使用open3从java命令获得任何输出。
但是,我使用’ls’成功测试了以下ruby代码。
require 'open3' Open3.popen3('java -version') do |stdrin, stdout, stderr| @output = stdout.read end
我也尝试过使用java的绝对路径:’/ opt / java / jre / bin / java’没有成功。
先感谢您
java -version
写入STDERR,因此以下内容应该有效:
@output = stderr.read
在Linux上,您可以通过压缩STDERR或STDOUT来检查输出所在的shell:
java -version >/dev/null
仍打印信息。
你需要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脚本。