如何将参数传递给jar文件并读取ruby中的控制台输出?

时间:2015-04-23 16:21:41

标签: java ruby jar

我正在尝试从ruby执行.jar文件并读取输出。当我的.jar文件不希望传递任何参数时,以下解决方案有效。但是当我尝试这样做时,我收到一个错误 -

pipe = IO.popen( [ '/path/to/java', '-jar', "/path/to/jarfile.jar #{argsA} #{argsB}", {SDTERR=>STDOUT} ] 
pipe.close_write 
puts pipe.readlines

我需要将几个参数传递给.jar文件。我该如何实现这一目标?我已经尝试了几种方法来做到这一点,但没有成功。这是我得到的错误,其中'Hello'和'World'是我传递的参数 -

  

错误:无法访问jarfile jarfile.jar Hello World

有用的链接: How to get java output with ruby

call jar file from ruby class

1 个答案:

答案 0 :(得分:0)

将argsA和argsB放在他们自己的参数中,否则当在参数中看到空格时,ruby会用引号将它们包围起来,所以它们被认为是一个。

pipe = IO.popen( [ '/path/to/java', '-jar', '/path/to/jarfile.jar',"#{argsA}", "#{argsB}", {SDTERR=>STDOUT} ]