我尝试将SQLite数据库用于我的jruby项目。
当我尝试安装sqlite3 gem时出现以下错误
C:\tibbr\main\community_manager>gem install sqlite3-ruby
构建原生扩展。这可能需要一段时间...... 错误:安装sqlite3-ruby时出错: 错误:无法构建gem原生扩展。
C:/tibbr/main/tools/jruby/bin/jruby.exe extconf.rb
警告:JRuby不支持本机扩展,也不支持main:Object的mkmf' library.
Check http://kenai.com/projects/jruby/pages/Home for alternatives.
extconf.rb:10: undefined method
dir_config'(NoMethodError)
Gem文件将保留在C:/tibbr/main/tools/jruby/lib/ruby/gems/1.8/gems/sqlite3-1.3.4中进行检查。 结果记录到C:/tibbr/main/tools/jruby/lib/ruby/gems/1.8/gems/sqlite3-1.3.4/ext/sqlite3/gem_make.out
有什么建议吗?提前致谢
答案 0 :(得分:6)
是的,JRuby不喜欢原生扩展。这是我到目前为止遇到的一些问题之一。正如senthil提到的,切换到jdbc适配器解决了这个问题。配置更改的示例:
<强>的Gemfile 强>
# gem 'sqlite3'
gem 'activerecord-jdbcsqlite3-adapter', :require => 'jdbc-sqlite3', :require =>'arjdbc'
答案 1 :(得分:1)
非常简单,我们需要一个jave(sqlitejdbc-v056.jar)lib文件来支持jruby。
我正在为我的项目使用jdbc适配器并使用gem(activerecord-sqlite3-adapter)。 它的工作正常。抱歉非常简单的问题。