Java w Rubim
Choć w internecie pojawia się wiele przykładów na to jak wykorzystać Javę w Rubim korzystając z JRubiego, nie omieszkam pokrótce omówić tego zagadnienia.
Najprościej można przetestować ten scenariusz uruchamiając konsolę JRubiego -
jirb
i wydając polecenie require 'java'
:
$ jirb >> require 'java' #=> true
Dzięki temu prostemu poleceniu mamy dostęp do wszystkich pakietów, które znajdują się w dystrybucji Javy zainstalowanej na naszym komputerze (dalej będę pomijał znak zachęty jirb oraz początkowe wywołanie require
):
s = java.lang.String.new("abc") #=> #<Java::JavaLang::String:0xadf5be @java_object=abc> s.length #=> 3 s.codePointAt(1) #=> 98
Co więcej – aby zachować zgodność z konwencjami Rubiego, wszystkie metody Javy zapisane w CamelCase są również dostępne w wersji z podkreśleniami. Ponadto, ponieważ piszemy w Rubim, nawiasy są opcjonalne:
s = java.lang.String.new("abc") #=> #<Java::JavaLang::String:0xadf5be @java_object=abc> s.code_point_at 1 #=> 98
Jeśli chcemy korzystać z jakiejś klasy Javy bez podawania każdorazowo
jej pełnej nazwy, możemy zaimportować odpowiedni pakiet za pomocą
dyrektywy import
:
import java.util.Date d = Date.new 1111111111111 #=> #<Java::JavaUtil::Date:0x1873eb2 @java_object=Fri Mar 18 02:58:31 CET 2005> d.year #=> 105 d.month #=> 2 d.day #=> 5
Widzimy zatem, że korzystanie z Javy w Rubim, przy pomocy JRubiego jest bardzo proste. Co jednak mamy zrobić, jeśli chcemy skorzystać z jakiejś zewnętrznej biblioteki napisanej w Javie? Odpowiedź jest prosta – wystarczy, że ścieżka do niej znajdzię się w zmiennej środowiskowej CLASSPATH:
$ export CLASSPATH=xstream-1.3.jar $ jirb >> require 'java' #=> true >> import com.thoughtworks.xstream.XStream #=> Java::ComThoughtworksXstream::XStream >> XStream.new #=> #<Java::ComThoughtworksXstream::XStream:0x1a3e41f @java_object=com.thoughtworks.xstream.XStream@1d03a4e>
Czy można chcieć więcej?