我正在尝试从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
答案 0 :(得分:0)
将argsA和argsB放在他们自己的参数中,否则当在参数中看到空格时,ruby会用引号将它们包围起来,所以它们被认为是一个。
pipe = IO.popen( [ '/path/to/java', '-jar', '/path/to/jarfile.jar',"#{argsA}", "#{argsB}", {SDTERR=>STDOUT} ]