初识jruby之 安装配置jruby on rails

本文将引导你逐步了解如何安装和配置JRuby,特别是针对Rails应用的设置。从先决条件开始,包括安装Rails,创建新的Rails应用程序,到最后的Java类路径配置,每个步骤都详细阐述。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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文件看起来是这样的:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值