Ruby RJB 无法创建 Java VM 错误
Ruby RJB can't create Java VM error
我已经看到这个问题被问过几次,但没有任何回复对我有用。我已经尝试了几个版本的 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 有错误?如果是这样,我该如何正确设置?
所以在我终于找到解决方案之后。 rjb 只有在 java 和 ruby 都是 32 位或 64 位时才有效。不同版本会导致虚拟机错误。
解决:
- 在终端
中查找 ruby 你是 运行 ruby -v
的版本
- 在终端
中查找 java javac
或 java -v
的版本
- 查看版本是 64 位还是 32 位
- 如果不同,我认为更改我的 jdk 版本更容易 - 卸载 jdk
- Download/install jdk
的 x86(32 位)版本
- 确保 JAVA_HOME env 变量设置为 jdk 的位置(可能需要重新启动才能使您所做的任何更改生效
Boom- 希望这也适用于其他人!
我已经看到这个问题被问过几次,但没有任何回复对我有用。我已经尝试了几个版本的 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 有错误?如果是这样,我该如何正确设置?
所以在我终于找到解决方案之后。 rjb 只有在 java 和 ruby 都是 32 位或 64 位时才有效。不同版本会导致虚拟机错误。
解决:
- 在终端 中查找 ruby 你是 运行
- 在终端 中查找 java
- 查看版本是 64 位还是 32 位
- 如果不同,我认为更改我的 jdk 版本更容易 - 卸载 jdk
- Download/install jdk 的 x86(32 位)版本
- 确保 JAVA_HOME env 变量设置为 jdk 的位置(可能需要重新启动才能使您所做的任何更改生效
ruby -v
的版本
javac
或 java -v
的版本
Boom- 希望这也适用于其他人!