ブログは死なず、ただ放置されるのみ。

終わっちゃいましたね。

rjb

Windows2000 + cygwin + ruby-1.8.2 + jdk1.4.2_07 な環境で rjb-0.1.9 の setup を試みたがうまくいかず。

ksh% ruby setup.rb config

      • > bin

<--- bin

      • > ext

/usr/bin/ruby /home/ksh/rjb-0.1.9/ext/extconf.rb
checking for jni.h... yes
creating Makefile<--- ext

      • > data
      • > data/rjb

<--- data/rjb<--- data
ksh% ruby setup.rb setup

      • > bin

<--- bin

      • > ext

make
gcc -g -O2 -I/cygdrive/c/j2sdk1.4.2_07/include -I/cygdrive/c/j2sdk1.4.2_07/include/win32 -I. -I/usr/lib/ruby/1.8/i386-cygwin -I/usr/lib/ruby/1.8/i386-cygwin -I/home/ksh/rjb-0.1.9/ext -DNONAMELESSUNION -DHAVE_JNI_H -c load.c
In file included from /cygdrive/c/j2sdk1.4.2_07/include/jni.h:27,
from load.c:38:
/cygdrive/c/j2sdk1.4.2_07/include/win32/jni_md.h:16: error: parse error before "jlong"
/cygdrive/c/j2sdk1.4.2_07/include/win32/jni_md.h:16: warning: data definition has no type or storage class
(以下大量にでる)

やはりASR入れるべきか。

とりあえず #include の前に

#define __int64 long long

なんて書いて逃げてみた。(弱すぎ)

ksh% more jarh.rb
require 'rjb'

o = Rjb::import('java.lang.System').out
o.println('jarh')

p o._classname
ksh% ruby jarh.rb
jarh
"java.io.PrintStream"
ksh%

おお、すばらしい。