JRubyクィックスタート
翻訳校正:原井彰弘
RubyとJavaを結びつけてJRubyができあがった。よいものとよいものを組みあわせれば2倍よいものができあがるという良い例だ。
(神がわざと組み合わせたとすら思える)ピーナッツバターとチョコレートのように「よいものとよいものを組みあわせれば2倍よいものができあがる」という考え方のもと、JRubyはRubyとJavaを結びつけた。西側の資本主義と東側の社会主義がかつて出会ったように、型に関して制限の少ない言語が型に関して厳密な言語に出会うさまを、これからご覧に入れよう。
JRubyは100%Javaによって実装されたRubyのインタプリタである。Rubyの全ての機能を有しているわけではないが、Rubyのほとんどの組み込みクラスが用意されている。
言うまでもないことではあるが、JRubyを最大限に活用したいならばJavaとRubyについて学ぶ必要がある。Javaのプログラマの方は、まずRubyの入門者向け記事及びもうひとつの記事を参考にして欲しい。その記事に書かれている内容を理解しているという前提で、この記事ではJRubyの世界を覗いてみる。
JRubyを入手する
まず、最初にすべきことは http://dist.codehaus.org/jruby/ で最新のjruby-binアーカイブをダウンロードすることである。必要なものはこのアーカイブの中に全て含まれている。ダウンロードが完了したら自分の好きな場所にアーカイブを展開し、binディレクトリへのパスをpath環境変数に追加しよう。
全てが完了したら、次のコマンドが正しく実行できるはずである。
jruby -v ruby 1.8.5 (2007-08-23 rev 4201) [ppc-jruby1.0.1]
コードを書く
まず、次のコマンドを入力してインタラクティブコンソールを呼び出してみよう。
jirb irb(main):001:0>
JRubyがRubyのインタプリタであるということは、今まで我々が見てきたRubyのコードは何でも動作させることが可能だということだ。
irb(main):001:0> puts "Hello World"
Hello World
=> nil
irb(main):002:0> [1, 2, 3, 4, 5].each { |n| puts n*n }
1
4
9
16
25
=> [1, 2, 3, 4, 5]
ここでは何も驚くことはない。我々があえてネイティブのRubyインタプリタではなくJRubyを使っているのは、Javaの機能を利用するためである。それでは、Javaというフレームワークをここで取り込んでみよう。
irb(main):003:0> require 'java' => true
ただし、ここで一般的なJavaのコードを利用しようとすると以下のように失敗してしまう。
irb(main):004:0> System.out.println("Hello world")
NameError: uninitialized constant System
from (irb):4:in `binding'
from /Users/chris.duckett/tmp/jruby/jruby-1.0.1/lib/ruby/1.8/irb.rb:150:in `eval_input'
from /Users/chris.duckett/tmp/jruby/jruby-1.0.1/lib/ruby/1.8/irb.rb:70:in `signal_status'
from /Users/chris.duckett/tmp/jruby/jruby-1.0.1/lib/ruby/1.8/irb.rb:147:in `eval_input'
from /Users/chris.duckett/tmp/jruby/jruby-1.0.1/lib/ruby/1.8/irb.rb:70:in `each_top_level_statement'
from /Users/chris.duckett/tmp/jruby/jruby-1.0.1/lib/ruby/1.8/irb.rb:146:in `loop'
from /Users/chris.duckett/tmp/jruby/jruby-1.0.1/lib/ruby/1.8/irb.rb:146:in `catch'
from /Users/chris.duckett/tmp/jruby/jruby-1.0.1/lib/ruby/1.8/irb.rb:146:in `eval_input'
from /Users/chris.duckett/tmp/jruby/jruby-1.0.1/lib/ruby/1.8/irb.rb:70:in `start'
from :1:in `catch'
from /Users/chris.duckett/tmp/jruby/jruby-1.0.1/lib/ruby/1.8/irb.rb:69:in `start'
from :1
JRubyで普通のHello Worldを動作させるには、Javaの基礎に立ち戻って当たり前だと思っていたことを見直す必要がある。
- 1人の推薦記事
- 2人がクリップ
-
ソーシャルブックマーク(-)
- トラックバック(0)
- ホワイトペーパー
- 話題のタグ
キャリアコンサルタントのノウハウが最大の強みです
無料の「Oracle Database XE」で高速バッチ処理:実装のポイント
Firefoxで情報をカンタン・ベンリに整理する
iPhone Safari、Acidテストでは高得点でも…… Firefoxは載らないの?:WebサイトのiPhone 3G対応問題を考える(ソフト編)
WebサイトのiPhone 3G対応問題を考える(ハード編)
フォトレポート:時代を振り返る--「MS-DOS 4」のインストール
SOAと仮想化の関係は?--常に進化を続けるBEAのミドルウェア戦略
ウェブ開発の生産性はどうしたら上がる?--MODIPHI Appsで半日で作るマッシュアップサイト(1)
JailBreakついに:PwnageTool公開
プロジェクトの進行でよくある4つのトラブル
iPhoneに付く指紋が…… ひとまずおすすめのシリコンケース
contentプロパティでコンテンツを追加する(2):FirefoxとSafariのCSS
iPhone 24時間耐久レース:バッテリーは実際何時間?
フォームデザイン虎の巻:フォームの基礎をおさえる
DELLが掲げる「新・仮想化アセスメントサービス」
ZDNet Japan ホスティング特集
ZDNet Japan Green IT
Techno Exchange