June 19th, 2007

在 Ruby 中使用 Java 套件的介紹已經很多了,不過倒是很少看到有人講在 Java 中使用 JRuby 的經驗。

首先,你還是必須去下載 JRuby (binary),還有從 java.net 上的 Scripting project 下載 jsr223-engines。解開 jsr223-engines 之後,把

  1. $JRUBY_HOME/lib/jruby.jar
  2. $JRUBY_HOME/lib/asm-2.2.3.jar
  3. $JRUBY_HOME/lib/backport-util-concurrent.jar

放到 $JSR223-ENGINES_HOME/jruby/lib 目錄下,接著,再將

  • $JSR223-ENGINES_HOME/jruby/build/jruby-engine.jar
  • $JSR223-ENGINES_HOME/jruby/lib/asm-2.2.3.jar
  • $JSR223-ENGINES_HOME/jruby/lib/backport-util-concurrent.jar
  • $JSR223-ENGINES_HOME/jruby/lib/jruby.jar

加到 project 的 classpath 中,下圖為 Netbeans 的例子:

將 JRuby ScriptEngine 所需要的檔案加入 classpath

然後就可以在程式中,利用 Java 的 javax.script.ScriptEngine 來寫 ruby code:

import javax.script.*;
...
ScriptEngineManager seMan = new ScriptEngineManager();
ScriptEngine se = seMan.getEngineByName("jruby");

try {
    se.eval("3.times { puts 'hello' }");
} catch (ScriptException ex) {
    ex.printStackTrace();
}

執行這個 Java 程式 之後,你就會看到三行 “hello” 的字串了 :P

 

歷史上的今天

目前有 2 則留言
  1. kuni:

    覺得這樣使用感覺怪怪的.應該只是我不懂要怎麼應用吧.XD

  2. ericsk:

    如果某些事情由 script 來作會比較快(或是已經寫好的 ruby script file),就直接拿來用了呀 :P

我要留言
(必填)
(必填)