Вы используете гем JRuby, а не сам JRuby.
JRuby
(который ZXing проверяет в строке 1) - это модуль, который определяется только после require 'java'
в JRuby.
Это должно быть четко указано в документации ZXing, но, похоже, это не так.
Вот результат теста, когда я запускаю следующее из клонированного исходного кода ZXing:
$ ruby -v -I lib -r zxing -e 'p 0'
ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
./lib/zxing.rb:1: ZXing requires JRuby (RuntimeError)
$ jruby -I lib -r zxing -e 'p 0'
/Users/asari/Development/src/zxing.rb/lib/zxing.rb:1: ZXing requires JRuby (RuntimeError)
from /Users/asari/Development/src/zxing.rb/lib/zxing.rb:1
...internal jruby stack elided...
from (unknown).(unknown)(/Users/asari/Development/src/zxing.rb/lib/zxing.rb:1)
from (unknown).(unknown)(:1)
$ jruby -r java -I lib -r zxing -e 'p 0'
0