/ / Vyžadovať jarby Zdá sa, že práca a zlyhanie súčasne - rubín, jrub

Vyžadovať jarby zdá sa, že práca a zlyhanie súčasne - rubín, jruby

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
>>

Ako je to možné?

Ďalej, ako by som to napísal rubínovým skriptom? Mám súbor, ktorý chcem vykonať s názvom test.rb, ktorý obsahuje nasledujúce informácie:

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

Vykonávam to z príkazového riadku takto:

ruby test.rb

V tomto kontexte, ako môžem zahrnúť java? Alebo je to dokonca možné?

odpovede:

1 pre odpoveď č. 1

Používate JRuby klenot skôr než samotný JRuby.

JRuby (ktoré ZXing kontroluje na riadku 1) je modul, ktorý sa definuje až po vás require "java" v JRuby.

Toto by malo byť jasne uvedené v dokumentácii spoločnosti ZXing, ale nezdá sa, že by to bolo.

Tu je testovací výstup, keď spúšťam nasledujúce z klonovaného zdrojového kódu ZXingu:

$ 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