2010-09-03 21 views
1
John-Breedloves-Mac-mini:~ john_breedlove$ irb 
>> require 'jruby' 
=> true 
>> require 'zxing' 
RuntimeError: ZXing requires JRuby 
from /Library/Ruby/Gems/1.8/gems/zxing-0.1.1/lib/zxing.rb:1 
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' 
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:36:in `require' 
from (irb):2 
>> 

这怎么可能?需要的JRuby似乎工作,并同时出现故障

此外,我怎么会写在一个红宝石脚本,虽然? 我有一个文件,我想执行所谓test.rb,它包含以下内容:

require 'rubygems' 
require 'jruby' 
require 'zxing' 
ZXing.decode 'test.png' 

我在命令行执行它像这样:

ruby test.rb 

在这种背景下,如何我是否包含java?或者这甚至有可能?

回答

1

您正在使用JRuby gem,而不是JRuby本身。

JRuby(其中ZXing正在检查第1行)是一个模块,只有在JRuby中的require 'java'之后才能定义。

这应该斑马线的文件中清楚地说明,但它似乎并不如此。

下面是测试输出,当我运行从克隆斑马线源代码如下:

$ 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