かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

Rubyスクリプトをexe化してみよう

Exerbというものを使うとできるらしい。
早速やってみよう。
公式サイトからさくっとダウンロード。
今日の段階では4.2.0が最新みたいだ。

ダウンロードして解凍したフォルダで下のコマンドを実行してインストールをする。

$ ruby setup.rb

お試し

単一のRubyスクリプトなら簡単にexe化できるみたいなので出勤前にやってみる。
用意したRubyスクリプトファイルはお馴染みのHello world

puts "Hello world"

ファイルの名前はhello.rbにした。

exe化する前に必ず動作確認すること!と書いてあるので動作確認。

$ ruby hello.rb
Hello world

うっし。流石に間違えてないな。

exerbコマンドにRubyのスクリプトファイルを渡してあげればexeになる。
早速やってみよう

$ exerb hello.rb

何も表示されないと成功らしい。
dirコマンドうってみると、確かにexeができていた。

2007/07/24  07:10           528,384 hello.exe

早速実行してみよう。

$ hello.exe
Hello world

ばっちり!!
Rubyインタプリタの入ってない所でも動くらしいのでかなりいいね!

Rubyスクリプトファイルが複数ある場合

複数用意してみた。

# hello_def.rb
class Hello
  def say_hello
    puts "Hello world"
  end
end
# hello_main.rb
require 'hello_def'

h = Hello.new
h.say_hello

実行してみると下の通りになる
何も難しいことはない

$ ruby hello_main.rb
Hello world
exe化

複数ファイルある場合は、どのファイルを使って、どのファイルがエントリポイントかとか設定しないといけない。
でも自動で作ってくれるらしい。
mkexyコマンドを使う。
使い方は、mkexyコマンドをrubyコマンドの代わりに使うだけ

$ mkexy hello_main.rb
Hello world

これを実行すると下のようなファイルが出来ている。

2007/07/24  07:20               155 hello_main.exy

このファイルをexerbコマンドに渡してやるとexeが出来る。

$ exerb hello_main.exy
$ dir
2007/07/24  07:23           528,384 hello_main.exe
$ hello_main
Hello world

とても簡単でした。