TOPシステム開発> jirbでHello,World
JRuby
JRubyを知る!

第2回:JRubyでHello, World!

著者:アスタリクス  大西 正太   2007/9/10
前のページ  1  2
jirbでHello,World

   それではJRubyの動作確認をしてみましょう。まずコマンドラインからJRubyを操作しながら、どのようなことができるのかを説明します。

jirbの実行

   簡単な動作確認をするために「jirb」というコマンドを利用します。コマンドプロンプトを開き、任意の場所で「jirb」と入力してみてください。

>jirb
irb(main):001:0>

   すると上記のように表示され、入力待ちになります。このjirbは対話型のRuby実行プログラムなのです。

   ここで任意のRubyプログラムを入力していくと、リアルタイムにスクリプトが実行されていきます。もともとRubyを触っていた方には「irbコマンドのJRuby版」というとわかりやすいでしょう。


Hello,Worldの記述

   それではHello,Worldを実行してみます。jirbコンソール上で下記のように入力してください。

irb(main):001:0> require 'java'
=>true
irb(main):002:0> import 'java.lang.System'
=> ["java.lang.System"]
irb(main):003:0> System.out.println('Hello, World!!')
Hello, World!!
=> nil

   正しく入力されていれば、Hello,Worldという文字が表示されます。

   ここで、上のソースコードを解説しましょう。まずJavaライブラリの読み込みの部分です。1行目の「require 'java'」はJRubyでJavaライブラリを利用することの宣言です。この記述をすると、それ以降はJavaのライブラリが利用できるようになります。逆にいうと、この宣言をしなければJRubyは単なるRubyクローンとして動作します。

   次にクラスのインポートが2行目です。ここのimportでJavaの基本的なAPIであるjava.lang.Systemクラスをパッケージ名なしで呼び出せるようにしています。

   その次にメソッドの呼び出しを行っています。3行目でJavaのSystem.out.printlnを実施し、文字列の出力をし、RubyスクリプトからJavaのライブラリを使って文字列を出力することに成功しています。

   2行目でimportを使わなかった場合でも「java.lang.System.out.println('…')」といった具合にFQDN(フルパッケージ名付)でクラスを記述すれば同様に動作させることが可能です。

   このように、非常に簡単にRubyとJavaの連携ができることがおわかりいただけたでしょうか。


jrubyコマンドでHello, Worldを実行する

   続いて、ファイルに記述したRubyスクリプトを実行してみます。先ほど説明したjirbは簡単に動作を確認するために有用ですが、もちろん通常のようにRubyプログラムファイルを作成して実行することもできます。

   では任意の場所でリスト1のようにファイルを作成してください(ファイル名をhello_world.rbとします)。

hello_world.rb
require 'java'
java.lang.System.out.println('Hello, World!!')

   実行は下記のように行います。

>jruby hello_world.rb
Hello, World!!

   問題なく実行できたでしょうか。もともとRubyを触っていた方には「rubyコマンドのJRuby版」ととらえるとわかりやすいと思います。基本的にはコマンドラインオプションなども同じです。


プリコンパイル実行

   前回紹介しましたが、JRubyはJIT(Just In Time)という機能を持っており、あるクラスがはじめて呼ばれたときにコンパイルが実行されています。この機能にはスクリプト言語の軽快さと性能向上を同時に実現するというメリットがありますが、一方で実行時の性能が一定にならないため、局面によっては利用しづらい場合があります。

   そこで、JRubyにはプリコンパイル機能が準備されています。下記のように-Cオプションをつけることで、まとめてプリコンパイルが実施されたうえで処理の実施を開始することができます。

>jruby -C hello_world.rb
Hello, World!!


明示的なコンパイル

   JavaVM上で実行可能な.classファイルを生成する明示的なコンパイラとして「jrubyc」コマンドも準備されています。jrubycは下記のように用います。

>jrubyc hello_world.rb

   jrubycを用いることで、javaコマンドから、Rubyで書いたコードを実行することができます。ただしJRuby 1.0では、jrubycコマンドは「experimental(実験的)」と明記されているため、まだまだ実用水準に達していません。またWindows用のjrubycコマンドは準備されていません。今後必要に応じて実装が進んでいくでしょう。


終わりに

   今回はJRubyの入手からインストール手順と動作確認までを紹介しました。すでにRubyを使っていた方は、Rubyとよく似たコマンドが構成されているので馴染みやすかったのではないでしょうか。次回はJRubyから自作、またはオープンソースのJavaクラスを呼び出す方法を紹介していきます。

前のページ  1  2


株式会社アスタリクス 大西 正太
著者プロフィール
株式会社アスタリクス  大西 正太
JavaEEフレームワークの設計構築や開発プロセス策定などの業務を経て、現在は新規ビジネス創生に携わる。Ruby on Rails上に構築したオープンソースのCMS「Rubricks」(http://rubricks.org/)のコミッタ。


INDEX
第2回:JRubyでHello, World!
  JRubyのインストール
jirbでHello,World