2

我正在使用带有 ruby​​ 的 java bridge(用于 Stanford-Core-NLP),在 Windows 机器上,当 Ruby 是 32 位(193)和 Java 是 64 位时,jrb 似乎无法工作。

可以吗?有没有比安装 Ruby 64(许多 gem 不支持)更好的解决方案?我必须使用 Java 64 来支持 4giga Java 应用程序。

谢谢这是错误消息:

C:/Ruby193/lib/ruby/gems/1.9.1/gems/bind-it-0.2.7/lib/bind-it/jar_loader.rb:45:in `load': can't create Java VM (RuntimeError)
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bind-it-0.2.7/lib/bind-it/jar_loader.rb:45:in `init_rjb'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bind-it-0.2.7/lib/bind-it/jar_loader.rb:38:in `load_jar_rjb'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bind-it-0.2.7/lib/bind-it/jar_loader.rb:27:in `load'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bind-it-0.2.7/lib/bind-it/binding.rb:63:in `load_jar'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bind-it-0.2.7/lib/bind-it/binding.rb:71:in `block in load_default_jars'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bind-it-0.2.7/lib/bind-it/binding.rb:68:in `each'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bind-it-0.2.7/lib/bind-it/binding.rb:68:in `load_default_jars'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bind-it-0.2.7/lib/bind-it/binding.rb:55:in `bind'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/stanford-core-nlp-0.5.1/lib/Stanford-Core-NLP.rb:125:in `bind'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/stanford-core-nlp-0.5.1/lib/Stanford-Core-NLP.rb:140:in `load'
4

1 回答 1

1

我很确定答案是否定的。

原因是(一般来说)你不能在同一个执行程序中混合 32 位和 64 位代码。非特权(即“用户模式”)程序无法在不同寻址模式之间切换 CPU。

其他论坛上针对 Ruby + Java + RJB 的各种其他“求助”似乎都支持这一点......

于 2013-11-13T11:16:34.690 回答