从Ruby Script执行Ruby Gem

时间:2015-06-13 19:14:05

标签: java ruby shell syntax runtime-error

我已经安装了gem rvpacker gem。从命令运行正常,但我想设置其选项。我现在有这个方法

def runPacker(dir, type)
  puts dir
  puts type
  begin
    rvpacker -V -f -d #{dir} -t ace -a #{type}
  rescue Exception =>e
    puts "Error!"
    puts e.message
    puts e.backtrace.inspect 
    return 1
  end
  return 0
end

如何使用我的参数编写此rvpacker行?

这是我将使用JRuby从Java App运行的脚本。 当我直接从JRuby调用此命令时,我得到了

org.jruby.embed.ParseFailedException: (SyntaxError) <script>:1: syntax error, unexpected tUMINUS
rvpacker -V -f -d P:\temp-workspace\RPGTestProject1 -t ace -a unpack

但是当我直接在控制台中写它时,它很好。

2 个答案:

答案 0 :(得分:0)

class Producer implements Runnable { private final BlockingQueue queue; Producer(BlockingQueue q) { queue = q; } public void run() { try { while (true) { queue.put(produce()); } } catch (InterruptedException ex) { ... handle ...} } Object produce() { ... } } class Consumer implements Runnable { private final BlockingQueue queue; Consumer(BlockingQueue q) { queue = q; } public void run() { try { while (true) { consume(queue.take()); } } catch (InterruptedException ex) { ... handle ...} } void consume(Object x) { ... } } 这不是ruby代码,我想从ruby解释器执行它;)Ave me!

答案 1 :(得分:-1)

如果我理解你的问题,那么我认为你会找到答案here。例如,您可以将命令包装在系统调用中,而不是行:

rvpacker -V -f -d #{dir} -t ace -a #{type}

你会用

system "rvpacker -V -f -d #{dir} -t ace -a #{type}"