JRuby 是運行在 JVM 上的開源 Ruby 解譯器,除呼叫本地方法(C 擴展)外,標準 Ruby 程式碼均可正確執行。JVM 早已支援 Python、JavaScript、Groovy、Scheme 等多語言,JRuby 讓 Ruby 加入這個多語言共生生態,實現跨語言互操作。
JAVA_HOME。JRUBY_HOME 指向安裝根目錄。bin/jirb 進入互動式 Shell;或 jruby script.rb 執行腳本。require 'java'
include_class "javax.jms.Session" # 匯入單一類別
include_package "javax.jms" # 匯入整個套件為 Ruby 模組
# 避免名稱衝突建議優先使用 include_class
include_class("java.util.List") { |pkg, name| "JList" } # 區塊重命名解決同名衝突
list = java.util.ArrayList.new
list.add("JRuby")
list.size # => 1
class MyRunnable
include java.lang.Runnable
def run
puts "Running in JRuby thread"
end
end
Thread.new(MyRunnable.new).start
Ruby 類別可繼承 Java 類別、實現 Java 介面;必要時可在 Java 中靜態呼叫 Ruby 方法。
2006 年中僅有 0.9 預覽版,但志願者團隊從 2005 年起快速迭代 5 個版本,通過標準解譯器測試套件持續驗證,現已超過 90% 測試通過並基本支援 Rails 框架。JRuby 正從實驗走向生產就緒。
掌握 JRuby,即掌握在 JVM 生態中以 Ruby 風格開發、複用 Java 資產、部署高可用 Rails 應用的關鑰鑰匙。