jruby で、デフォルト・ブラウザを起動する。

GUI アプリケーションめいたものを作りたいと思ったとき、どのようにしてやりましょうか?
とりあえず、ローカルで CGI でやることにしてみようかなと。

というわけで、まず手始めに jruby で java6 のAPI を利用してデフォルト・ブラウザを起動するコードを下記のように書いてみました。


まあ、これで確かにデフォルト・ブラウザが起動して webpage が開かれるのではあるけれど…。(デフォルト・ブラウザを起動させ目的の webpage を開く事は達成)


けれども webrick との相性が悪いようで、ローカルで webrick の生成したcgiのページを開こうとするとエラーになるような。javaruby のコードがぶつかっているのかな? よく分からない。しょうがないから、次からは firefox で ローカルの webrick で作成したページを開く手法にしようかな…(これはうまくいくので)


先は長い…。まあ、ゆっくりと。


require "java"

import "java.awt.Desktop"
import "java.io.IOException"
import "java.net.URI"
import "java.net.URISyntaxException"

desktop = Desktop.getDesktop
uri_string = "http://www.google.co.jp"

begin

uri = URI.new(uri_string)
desktop.browse(uri)

rescue URISyntaxException => e
e.printStackTrace
rescue IOException => e
e.printStackTrace

end


=begin

デフォルト・ブラウザーが起動して指定の url が開かれる。
しかし、webrick で生成したローカルのcgiページとの相性は悪い?

以下は、元になった java コード。

import java.awt.Desktop;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

public class DefaultBrowserLauncher {

public static void main(String[] args) {

Desktop desktop = Desktop.getDesktop();
String uriString = "http://www.google.co.jp";
try {
URI uri = new URI(uriString);
desktop.browse(uri);
} catch (URISyntaxException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

=end