Il Contrario, Utilizzare JRuby in Java

Utilizzare librerie Java in JRuby, oltre che essere molto semplice, può essere veramente comodo. Basti pensare ad iText, una delle librerie per creare PDF più complete che esistano. Ma a volte è necessario il contrario, wrappare delle librerie Ruby in Java può essere molto utile per la dinamicità che Java non può dare. Un esempio pratico è il mio wrapper della gemma Faker.

La possibilità di eseguire script da Java risale al lontano 2006, quando è stata rilasciata la Final Release di JSR-228.

Passando al codice, prendo un esempio direttamente dal mio wrapper e lo complifico un poco:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package ch.lugano.test.faker;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class Faker {

  static ScriptEngine jruby;
  static {
    jruby = new ScriptEngineManager().getEngineByName("jruby");
    try {
      jruby.eval("puts 'Hello World!'");
    }
    catch (ScriptException e) {
      System.out.println(e.getMessage());
    }
  }

}

Il codice parla da solo, unico passo da eseguire ancora è aggiungere jruby-complete.jar alle dipendenze. Può essere fatto in 2 modi, o come dipendenza maven oppure aggiungendo il jar al classpath.

1
2
3
4
5
6
<dependency>
  <groupId>org.jruby</groupId>
  <artifactId>jruby-complete</artifactId>
  <version>1.7.4</version>
  <scope>runtime</scope>
</dependency>

Happy coding!

Comments

Copyright © 2014 - Luca Simone -