如何使用JRuby在Java项目中运行现有的Ruby脚本?

时间:2015-09-14 03:12:42

标签: java ruby scripting jruby

我正在尝试使用JRuby在Java项目中运行现有的Ruby脚本。我发现的所有示例都是动态编写Ruby脚本并运行它:

ScriptingContainer container = new ScriptingContainer();
container.runScriptlet("/path/to/file/test.rb");

但是我想运行一个现有的Ruby脚本。没有运气。这是我一直在尝试的:

test.rb

我的#!/usr/bin/env jruby puts "hi" 文件如下:

=IFERROR(LOOKUP(2,1/(A$1:A1=A2),ROW($1:1)),0)

1 个答案:

答案 0 :(得分:0)

the API docs可以看出,container.runScriptlet(PathType.ABSOLUTE, "/path/to/file/test.rb"); 有几种形式;如果你想让它执行一个文件,它需要two parameters;在你的情况下,

A <- list(c(1,2,3,2,1,4),c(7,3,1,2,2,1),c(2,3,7,2,2,8))
B <- list(c(2,1,3,2),c(3,1,5,2),c(2,4,5,1))

# Desired Output

[[1]]
    [1] 1 2 3 2 1 4
    [1] 2 1 3 2
[[2]]
    [1] 7 3 1 2 2 1
    [1] 3 1 5 2
[[3]]
    [1] 2 3 7 2 2 8
    [1] 2 4 5 1

# I have tried with the items beloww and nothing works as to produce the shown desired output. Would you happen to know on how to combine the two vectors as to produce the outcome below. 

c
cbind(A,B)
     A         B        
[1,] Numeric,6 Numeric,4
[2,] Numeric,6 Numeric,4
[3,] Numeric,6 Numeric,4

merge
append

tl; dr:如有疑问,请查看文档。