Ruby RJB 无法创建 Java VM 错误

标签 ruby path jvm nlp rjb

我已经多次看到这个问题,但没有任何回复对我有用。我已经尝试了几个版本的 rjb、几个 jre 版本。无论我尝试什么,当尝试使用 rjb gem 时,我都会收到以下错误:

DL is deprecated, please use Fiddle
C:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/bind-it-0.2.7/lib/bind-it/jar_loader.rb:45:in `load': can't create Java VM (RuntimeError)

我的路径中有 JAVA_Home。我只是使用简单的代码来测试 rjb,因为我真的只需要它才能工作,这样 stanford open nlp gem 就可以为我工作。

有什么解释吗?可能会帮助其他一些可怜的灵魂...如果有帮助的话我正在 Windows 上运行

更新:在命令行中尝试以下方法进行故障排除

 ruby -d -rubygems -rrjb -e 'Rjb::load'
Exception `LoadError' at c:/RailsInstaller/Ruby2.1.0/lib/ruby/site_ruby/2.1.0/rubygems.rb:1203 - cannot load such file -- rubygems/defaults/ruby
Exception `LoadError' at c:/RailsInstaller/Ruby2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55 - cannot load such file -- rjb
Exception `Fiddle::DLError' at c:/RailsInstaller/Ruby2.1.0/lib/ruby/2.1.0/fiddle.rb:46 - No such file or directory
DL is deprecated, please use Fiddle
Exception `DL::DLError' at -e:1 - No such file or directory
Exception `Fiddle::DLError' at c:/RailsInstaller/Ruby2.1.0/lib/ruby/2.1.0/fiddle.rb:46 - No such file or directory
Exception `DL::DLError' at -e:1 - No such file or directory
Exception `RuntimeError' at -e:1 - can't create Java VM
-e:1:in `load': can't create Java VM (RuntimeError)
        from -e:1:in `<main>'

这是否意味着路径或 JAVA_HOME 有错误?如果是这样,我该如何正确设置?

最佳答案

所以在我终于找到了解决方案之后。仅当 java 和 ruby​​ 均为 32 位或均为 64 位时,rjb 才有效。版本不同会导致VM错误。

解决方法:

  1. 在终端中查找您正在运行 ruby -v 的 ruby​​ 版本
  2. 在终端中查找 java javacjava -v 版本
  3. 查看版本是 64 位还是 32 位
  4. 如果不同,我认为更改我的jdk版本更容易 - 卸载jdk
  5. 下载/安装 x86(32 位)版本的 jdk
  6. 确保 JAVA_HOME 环境变量设置为 jdk 的位置(可能需要重新启动才能使您所做的任何更改生效

繁荣 - 希望这也适用于其他人!

关于Ruby RJB 无法创建 Java VM 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30794913/

相关文章:

ruby - Chef 模板 - 时间戳

ruby - 我如何模拟 "does not implement"特定方法的东西?

php - 使用 PHP 抓取完整图像 src

ruby - hadoop流作业失败无法从SCDynamicStore env加载领域信息:ruby\r:无此类文件或目录

ruby-on-rails - Rails : CanCanCan - AccessDenied error not displaying

ruby - 在 Ruby 中将唯一的种子字符串转换为随机但确定的浮点值

c++ - 获取当前文件夹中可执行文件的路径 C++

JAVA 8 : how to pass -xms and -xmx JVM values in the command

java - 如何在 lambda 迭代和普通循环之间做出决定?

java - Java中的整数缓存