rails调用java的jar包

最近在做一个项目需要调用java的jar包,实现word文档内文字全文检索(代码水平不高凑合看吧,有不对的望指出)
首先在系统中安装java-jdk环境
让我们先从JDK开始。

安装Sun JDK
1. 从Oracle官方网站下载最新的Linux版本JDK二进制包。对于Java 6来说,文件名是 jdk-6u22-linux-i586.bin

2. 复制下载好的文件到你准备安装JDK的文件目录下。这里我将其放在 /home//java/jdk-6u22-linux-i586.bin

3. 打开终端(Terminal)窗口并定位到上一步的文件目录下,然后输入命令:sudo sh jdk-6u22-linux-i586.bin 并回车。

4. 如果系统提示输入root用户密码,授权后JDK安装就会开始。JDK会被安装在二进制包所在的同一目录内。

此处也可以打开新立得,从里面搜索openjdk-6-jdk,全部安装

到这里JDK的安装已经完成了。但是我们仍然还有一些工作要做,那就是设置 JAVA_HOME 环境变量。

设置 JAVA_HOME 环境变量
1. 进入 Nautilus文件管理器(位置->主目录)并打开.bashrc文件;由于此文件默认是隐藏状态,所以你需要通过 Ctrl+H 来显示所有隐藏文件。

2. 把下面的代码段加入到.bashrc文件的末尾:
此处要注意的是路径,还有“:”,不是“;”

export JAVA_HOME=/usr/java/jdk1.6.0_13(根据自己的版本号修改)
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

不要忘了修改上面代码第一行中的路径,修改为你安装JDK的路径

3. 好了,注销并重新登录之后配置就完成了。为了测试是否成功安装,可以在终端(Terminal)里输入 java -version 来查看你当前安装的JDK版本号。

安装Eclipse
这里不说了,本人用的vim

把jar包放到rails项目中
environment.rb

require 'rjb'

classpath = ["#{RAILS_ROOT}/lib/bcprov-ext-jdk15-145.jar",
"#{RAILS_ROOT}/lib/bcprov-jdk15-145.jar",
"#{RAILS_ROOT}/lib/commons-beanutils-1.7.0.jar",
"#{RAILS_ROOT}/lib/commons-collections-3.1.jar",
"#{RAILS_ROOT}/lib/commons-lang-2.1.jar",
"#{RAILS_ROOT}/lib/commons-logging-1.1-jar",
"#{RAILS_ROOT}/lib/commons-logging-api-1.1.jar",
"#{RAILS_ROOT}/lib/commons-pool.jar",
"#{RAILS_ROOT}/lib/dom4j-1.6.1.jar"].join(':')

Rjb::load(classpath, ['-Xmx512M']) #POOF – Java runtime!




search_controller.rb

#全文检索
def search
str=Rjb::import('cn.xxx.lucene.SearchFiles')
skey = str.new
skey.setINDEX_PATH("#{RAILS_ROOT}/index");
@list = Rjb::import('java.util.ArrayList').new
if params[:startindex].blank?
@startindex = 0
else
@startindex = params[:startindex].to_i
end
@list = skey.search(params[:query],@startindex,10)
@s = Rjb::import('java.lang.String')
@attachments = Array.new
@list.size.times do |l|
@s = @list.get(l)
@a = @s.toString()
@a.split(",")[0].each do |a|
@attachment = Attachment.find_by_id(a)
@attachments<<@attachment
end

end
render :layout => 'main'
end

#更新索引
def suoyin
indexfiles = Rjb::import('cn.xxx.lucene.IndexFiles')
inf = indexfiles.new("#{RAILS_ROOT}/index","#{RAILS_ROOT}/public/files")
inf.setAppend(false)
inf.createIndex()
redirect_to :controller => 'my', :action => 'home'
end




如发现有不足可以补充,我觉得还少点什么
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值