当前位置: 首页 > 工具软件 > Rjb > 使用案例 >

rjb调用java方法

云瑞
2023-12-01
最近要在ror项目中引进一个java接口方法。一似乎接触了rjb。

事前准备
一:下载rjb相关版本gem包。

gem install rjb

确认安装成功
为了确认 RJB 安装成功,首先调用 Ruby 的交互式控制台 irb:
# irb

然后输入 require 'rjb':
irb(main):001:0> require 'rjb'

=> true

irb(main):002:0>exit

二:安装jdk,配置jdk环境变量。

JAVA方法打包
一:把需要调用的类方法打成jar包,类方法中本身有调用jar包的,要把相关jar解压出来放到根目录下一起打包包含进来。

二:将打好的jar包放到ror项目的lib目录下待调用。

ror相关调用:

一:在ror的envieroment.rb文件中配置以下变量

ENV['JAVA_HOME'] = "d:/jdk1.6.0_10"

ENV['LD_LIBRARY_PATH'] = "d:/jdk1.6.0_10/jre/lib/i386:d:/jdk1.6.0_10/jre/lib/i386/client"


二:ruby引用调用jar包中的java类方法


module Rjbtest
require 'rubygems'
require 'rjb'
def nmsrjb( host, port, ip, arg0, arg1, arg2, arg3)
Rjb::load(classpath = "#{RAILS_ROOT}/lib/testjrb.jar", jvmargs=[])
test = Rjb::import("EventClientDemo")
nmstest=test.new
nmstest.sendevents( host, port, ip, arg0, arg1, arg2, arg3)
end
end


需要注意的是,当使用的是安腾服务器的时候包一个rjbcore.rb文件中报错。多次验证是里边的一个.so文件不兼容,不知道有没有相关的gem包支持。最后针对安腾服务器单独写了java程序独立跑任务。
 类似资料: