Linuxで Rhino
Ubuntuの場合, rhinoパッケージが用意してあったりする。
warp@balthasar ~/gui> aptitude search rhino p rhino - JavaScript engine written in Java p rhino-doc - Documentation for rhino Java Script Engine p rhinote - virtual sticky-notes for your desktop warp@balthasar ~/gui> aptitude install rhino
でもってさらに SWTなんか installしてみたりして。
warp@balthasar ~/gui> aptitude search swt p libswt-motif3-java - Standard Widget Toolkit for Motif JAR library p libswt-motif3-jni - Standard Widget Toolkit for Motif JNI library p libswt-pocketpc3-java - Standard Widget Toolkit for PocketPC JAR library p libswt-pocketpc3-jni - Standard Widget Toolkit for PocketPC JNI library p libswt3.1-gtk-gcj - Fast and rich GUI toolkit for Java, gtk2 (GCJ version) p libswt3.1-gtk-java - Fast and rich GUI toolkit for Java, gtk2 version p libswt3.1-gtk-jni - Platform dependent files for libswt3.1-gtk-java p libswt3.2-gtk-gcj - Fast and rich GUI toolkit for Java, gtk2 (GCJ version) p libswt3.2-gtk-java - Fast and rich GUI toolkit for Java, gtk2 version p libswt3.2-gtk-jni - Platform dependent files warp@balthasar ~/gui> aptitude install libswt3.2-gtk-gcj
rhinoを簡単に導入できるのはよいけど E4Xが使えない感じ。なんか特別なバージョンっぽい。http://xmlbeans.apache.org/sourceAndBinaries/ から xbean.jar持ってきても動かないし。
てゆーことで, 本家の rhino持ってきて js.jarを置き換えてみたりして。
warp@balthasar ~/rhino1_6R5> rhino @IMPLEMENTATION.VERSION@ js> warp@balthasar ~/rhino1_6R5> ls /usr/share/java/js* # シンボリックリンクだったり /usr/share/java/js-1.6.jar /usr/share/java/js.jar warp@balthasar ~/rhino1_6R5> sudo mv js.jar /usr/share/java/js-1.6R5.jar warp@balthasar ~/rhino1_6R5> pushd /usr/share/java/ warp@balthasar /u/s/java> sudo rm /usr/share/java/js.jar warp@balthasar /u/s/java> ln -s js-1.6R5.jar js.jar warp@balthasar /u/s/java> popd warp@balthasar ~/rhino1_6R5> ls /usr/share/java/js* -l -rw-r--r-- 1 root root 548599 2005-06-30 03:58 /usr/share/java/js-1.6.jar -rw-r--r-- 1 warp warp 708951 2006-11-18 15:46 /usr/share/java/js-1.6R5.jar lrwxrwxrwx 1 root root 12 2007-03-26 13:02 /usr/share/java/js.jar -> js-1.6R5.jar warp@balthasar ~/rhino1_6R5> rhino # 次に xbean.jarを導入 (先に導入しててよいけど) Rhino 1.6 release 5 2006 11 18 js> js> environment['java.ext.dirs'] /usr/share/java/ext js> warp@balthasar ~/rhino1_6R5> ls /usr/share/java/ext ls: /usr/share/java/ext: No such file or directory warp@balthasar ~/rhino1_6R5> sudo mkdir /usr/share/java/ext warp@balthasar ~/rhino1_6R5> sudo cp ~/xmlbeans-2.2.0/lib/xbean.jar /usr/share/java/ext/ warp@balthasar ~/rhino1_6R5> rhino # 動作確認 Rhino 1.6 release 5 2006 11 18 js> var v = <test/> js>
SWTを試してみる
SWT導入したのはよいけど, /usr/share/java以下に見当たらない。探してみると /usr/lib/java/ に入ってたりして。
warp@balthasar ~/gui> sudo ln -s /usr/lib/java/swt.jar /usr/share/java/ext/
さてアレだ … つっても SWT作ったことないし分かんないや。てへ。
ちとググって作ってみよー …
importClass(Packages.org.eclipse.swt.widgets.Display) importClass(Packages.org.eclipse.swt.widgets.Shell) var display = new Display() var shell = new Shell(display) shell.text = 'Hello, World.' shell.setSize(200, 100) shell.open() while (!shell.disposed) { if (!display.readAndDispatch()) display.sleep() } display.dispose()
warp@balthasar ~/gui> rhino hello.js
たぶんコレって動いてるんだろー。きっとそうだ。