【问题标题】:How to pass parameters to a jar file and read the console output in ruby?如何将参数传递给 jar 文件并在 ruby​​ 中读取控制台输出?
【发布时间】:2015-04-23 16:21:41
【问题描述】:

我正在尝试从 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

【问题讨论】:

  • 您是否尝试过将 .jar 文件名和参数作为数组中的单独元素传递给IO.popen
  • 是的,我昨天试过了,效果很好。

标签: java ruby jar


【解决方案1】:

把argsA和argsB放在自己的参数中,否则看到参数中有空格时,ruby会用引号括起来,所以认为是一个。

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

【讨论】:

    猜你喜欢
    • 2012-05-05
    • 1970-01-01
    • 2013-03-24
    • 2016-06-05
    • 1970-01-01
    • 2012-03-12
    • 2016-07-30
    • 1970-01-01
    • 2010-10-02
    相关资源
    最近更新 更多