JRuby で SWT を使う (Windows 環境)

SWT を適当にダウンロードしてくる
解凍して出てきたファイル

swt.jar
swt-awt-win32-xxxx.dll
swt-gdip-win32-xxxx.dll
swt-wgl-win32-xxxx.dll
swt-win32-xxxx.dll

を %JRUBY_HOME%\lib にコピー

追記: 今は swt.jar の中に dll が入ってるから、swt.jar だけコピーすればいい


%JURYB_HOME%\bin\jruby.bat の

rem ----- Set Up The Runtime Classpath --

set CP= ....

%JRUBY_HOME%\lib\swt.jar

を追加

rem ----- Execute The Requested Command --

%_STARTJAVA% -Xmx256m -ea -cp "%CLASSPATH%" ....

-Djava.library.path=%JRUBY_BASE%\lib

を追加


追記: JRuby 1.0 以上の場合
%JRUBY_HOME%\lib 以下にある *.jar ファイルを自動的に、CLASS_PATH に追加するよう変更されているので、上のようにバッチファイルを変更する必要はなくなっていた



下記のようなコードを、swttest.rb とか適当なファイル名で保存して

require 'java'

module SWT
	include_package 'org.eclipse.swt'
	include_package 'org.eclipse.swt.layout'
	include_package 'org.eclipse.swt.widgets'
end

display = SWT::Display.new
shell   = SWT::Shell.new display

shell.pack
shell.open

display.sleep unless display.readAndDispatch while !shell.isDisposed

display.dispose
C:\> jruby swttest.rb

で実行