Vývojář | Charles Oliver Nutter, Thomas Enebo, Ola Bini a Nick Sieger |
---|---|
Aktuální verze | 9.4.7.0 (29. dubna 2024) |
Operační systém | multiplatformní |
Platforma | Java Virtual Machine |
Vyvíjeno v | Ruby a Java |
Typ softwaru | interpreter programovacího jazyka Ruby |
Licence | CPL/GPL/LGPL |
Web | www.jruby.org/ |
Některá data mohou pocházet z datové položky. |
JRuby je implementace programovacího jazyka Ruby na JVM, napsaná převážně v Javě. JRuby je úzce integrován s Javou a dovoluje obousměrný přístup mezi kódem v Javě a v Ruby. (Podobně jako Jython.)
Jedna ze silných stránek JRuby je jeho schopnost volat třídy z platformy Java. K tomu je nejdříve potřeba získat podporu Javy příkazem require 'java'
. Následující příklad předvede vytvoření JFrame
s JLabel
.
require 'java'
frame = javax.swing.JFrame.new
frame.getContentPane.add javax.swing.JLabel.new('Hello, World!')
frame.setDefaultCloseOperation javax.swing.JFrame::EXIT_ON_CLOSE
frame.pack
frame.set_visible true
JRuby může být stejně snadno volán z Javy, buď pomocí JSR 223[1] Scripting pro Javu 6, nebo frameworku Apache Bean Scripting.
//Example using JSR 233 Scripting for Java 6
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine rbEngine = mgr.getEngineByExtension("rb");
try {
rbEngine.eval("puts 'Hello World!'");
} catch (ScriptException ex) {
ex.printStackTrace();
}
JRuby umožňuje načíst a spustit vzdálený kód ve funkci, která k tomu není určena.[2]