初識jruby之 安裝配置jruby on rails

1. prerequesite

      假設你已經安裝好了jruby,並且使用的jdk最好是1.7。

2. 安裝rails

    安裝rails4.0.0:
C:\>jruby -S gem install rails -V

   查看安裝的rails版本:
C:\>jruby -S rails -v
Rails 4.0.0

3. 新建一個rails Apps

C:\>jruby -S rails new demo

     並且取消bundle install,因爲使用默認安裝的ActiveRecord-JDBC-adapter的master分支版本目前,會導致執行rake db:migrate命令時發生wrong number of arguments calling exec_insert (5 for 3) error錯誤,所以,修改gemfile使用它的1.3.0.beta2版本(這個步驟是現在的權宜之計,以後肯定不必這麼麻煩了。後注:此問題目前已修復):
     如果使用的是sqlite數據庫,則將:
gem 'activerecord-jdbcsqlite3-adapter'

改爲:
gem 'activerecord-jdbcsqlite3-adapter', '1.3.0.beta2'

    如果使用的mysql數據庫,則將:
gem 'activerecord-jdbcmysql-adapter'

改爲:
gem 'activerecord-jdbcmysql-adapter','1.3.0.beta2'

 
    然後再進行 jruby -S bundle install 安裝gem。
    如果使用sqlite數據庫,默認配置即可,如果使用mysql數據庫,則修改database.yml,以development環境爲例,這裏的username,password,host,port按照具體情況進行具體配置:
development:
  adapter: mysql
  encoding: utf8
  reconnect: false
  database: demo_development
  username: user
  password: user_password
  host: localhost
  port: 3306


    最後,啓動rails app:
C:\DEMO>jruby -S rails s

    然而此時又出錯了:
OpenSSL::Cipher::CipherError: Illegal key size: possibly you need to install Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files for your JRE

    要求安裝JCE,到Oracle 官網上下載一個UnlimitedJCEPolicyJDK7.zip文件,解壓縮後包含兩個jar文件:local_policy.jar和US_export_policy.jar。將這兩個文件替換$JAVA_HOME/jre/lib/security目錄下兩個同名文件,如,在我的電腦是就是替換C:\Program Files\Java\jdk1.7.0_25\jre\lib\security目錄下兩個文件。替換後,重啓電腦。
    此時,再jruby -S rails s啓動app則可以正確運行了。

4. 配置java類路徑

     如果需要在rails中使用java外部類,則需要配置一下$CLASSPATH,首先,假設我們將需要的java類都放在rails_root/lib/java文件夾下。那麼就在environment.rb文件中require File.expand_path('../application', __FILE__)後添加代碼:
require 'java'
$CLASSPATH << File.join(Rails.root, 'lib','java')

    這樣,如果在該目錄下有一個編譯好的java類example.MyClass在rails中就可以像這樣使用該類:
mc=Java::example.MyClass.new

    如果還使用了外部jar,則還要添加引用jar的代碼,同樣在environment.rb文件中添加:
Dir.glob(File.join(Rails.root, 'lib','java',"**","*.jar")).each do |jar| 
	$CLASSPATH << jar
end

   所以最終environment.rb文件看起來是這樣的:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章