ラベル Java の投稿を表示しています。 すべての投稿を表示
ラベル Java の投稿を表示しています。 すべての投稿を表示

2009年8月1日土曜日

JavaでRubyを実行する

Rubyというスクリプト言語をJava上で実行する方法をご紹介します。

まず、RubyのJava実装環境である、「JRuby」をインストールします。JRubyは以下からダウンロードしてください。

http://dist.codehaus.org/jruby/

上記のリンク先から最新のバージョンをダウンロードしてください。ここでは、「jruby-bin-1.1.5.zip」をダウンロードしました。

 JRubyのインストール

ダウンロードしたファイルを適当なところに解凍して、環境変数を設定します。


JRUBY_HOME=C:\ruby\jruby-1.1.5
PATH=%PATH%;%JRUBY_HOME%\bin

それでは、JRubyが適切に動作するかを確認する為に以下のをコマンドプロンプトにて実行します。

jruby -version

これで、JRubyのバージョンの情報が表示されればインストール完了です。

JRubyのインストールはこれで終わりなのですが、JavaからRubyを実行するにはいくつかのパッケージが必要になりますので、CLASSPASHに指定してください。

  • jruby-engine.jar
  • bsf.jar
  • profile.jar

jruby-engien.jarはスクリプトを動かす為のライブラリです。Java 6 では、「Java Script」はスクリプトエンジンが実装されているのですが、Rubyはまだ実装されていません。そこで、このライブラリが必要になります。ココから「jsr223-engines.zip」をダウンロードして、適当なところに解凍してください。

下の2つは「%JRUBY_HOME%\lib」にあります。

これで準備は整いました。それでは、実際に動くか試してみましょう。

import javax.script.*;

public class Test {
 private static ScriptEngine ruby = new ScriptEngineManager().getEngineByName("ruby");
 
 public static void main(String[] args) throws Exception {
  String program = "def hello(n)\n puts \"Hello \" + n\n end";
  ruby.eval(new java.io.StringReader(program));
  ruby.put("s", "JRuby");
  ruby.eval("hello($s)");
 }
}

実行結果

Hello JRuby

と、表示されれば成功です。java.lang.NullPointerException(がっ!!)と表示される場合は、環境変数を見直しましょう。

2009年7月11日土曜日

Javaソース ハイライト化に対応しました

JavaソースをBloggerに公開するに当たって、「ソースをハイライト化したら見やすいのでは」ってことで調べてみたらありました。


以前、「pukiwiki」にインストールしたことがある「Syntax Highlighter」を使用するします。ここでは、「Syntax Highlighter」のBlogger版「Blogger Syntax Highlighter」を使用します。


FaziBear’s Blogger Widgets


上のリンクにアクセスして、「+ Add to Blogger」をクリックすると、事前にBloggerにログインしていると勝手にガジェットが追加されいつでも使えるようになります。


それでは使用例です。


<pre name='code' class='java'>
public class Test {
public static void main(String[] args){
System.out.println("Hello World");
}
}
</pre>

以上のように、投稿の編集画面で記述してください。ここで気をつけないといけないのは"<"などを、"&lt;"と変換しなければいけません。



で、これを投稿するとこんな感じ。


public class Test {
public static void main(String[] args){
System.out.println("Hello World");
}
}

おお、ちゃんと表示されました。
ちなみに、「Syntax Highlighter」はJava以外にも、HTMLなどもハイライト化してくれますが、そこら辺の詳細は、「Syntax Highlighter」本家で調べるか、私が参考にしたサイトにも対応表が載っているので参考にしてみて下さい。

参考サイト: 医者を志す妻を応援する夫の日記