`

rjb调用java方法

    博客分类:
  • RUBY
rjb 
阅读更多
最近要在ror项目中引进一个java接口方法。一似乎接触了rjb。

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

gem install rjb

确认安装成功
为了确认 RJB 安装成功,首先调用 Ruby 的交互式控制台 irb:
[root@san]# 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程序独立跑任务。
分享到:
评论

相关推荐

    利用RJB在Ruby on Rails中使用Java代码的教程

    本教程的目标在于指导读者如何配置和使用RJB,从而在Rails应用中集成和调用Java代码。由于Rails框架本身的功能丰富,本教程并未深入探讨其细节,而是专注于RJB的使用方法。如果你对Rails不熟悉,建议查阅相关的官方...

    rjb:Ruby Java桥

    Rjb是使用Java本机接口的Ruby-Java桥。 Rjb上的演示文稿。 英文简短。 日语中的一些,但是每个人的源代码都很清晰。如何安装您需要安装Java2 sdk,并设置JAVA_HOME环境变量(OS X除外)。我假设OS X的JAVA_HOME是...

    Java实现显示进度条

    当按钮被点击时,调用`start()`方法启动线程。 5. **线程的run方法**: ```java public void run() { for (int i = 0; i ; i++) { jpb.setValue(i); jpb.setStringPainted(true); String per = (int) (jpb....

    关于flex与数据库交互

    通过本文的介绍,我们可以看到Flex与数据库交互的基本流程:首先在Java端定义数据模型和数据访问逻辑,然后在Flex端通过`RemoteObject`组件调用Java服务端的方法来获取数据并展示在界面上。这种方式不仅简化了前后端...

    调用系统相机并保存原始图片

    在Android应用开发中,"调用系统相机并保存原始图片"是一个常见的需求。这涉及到与设备硬件的交互,用户界面的构建,以及照片处理的流程。以下是对这一知识点的详细说明: 1. **启动相机应用**: 要调用系统相机,...

    一篇关于flex与数据库交互的例子

    在示例代码中,`FlexWithJava.mxml`文件中定义了一个`RemoteObject`实例,通过设置`destination`属性指向`UserDao`类,Flex就能够调用Java层的方法。当Java层的方法执行完毕,返回结果时,`onResult`事件处理器会被...

    java 抓取网页内容实现代码

    4. **处理代理**:如果需要通过代理服务器访问网页,可以调用`initProxy`方法设置系统属性,提供代理的主机名、端口、用户名和密码。 5. **HttpURLConnection**:对于HTTP请求,可以使用`HttpURLConnection`进行更...

    Android编程经典代码集锦(复制,粘贴,浏览器调用,Toast显示,自定义Dialog等)

    通过获取系统服务`CLIPBOARD_SERVICE`,我们可以创建一个`ClipboardManager`实例,然后使用`setText`方法进行复制,`getText`方法进行粘贴。 ```java ClipboardManager clip = (ClipboardManager) ...

    Android基于TextView属性android:ellipsize实现跑马灯效果的方法

    2. 设置`android:singleLine="true"`或在Java代码中调用`setSingleLine(true)`。 3. 通过`setEllipsize(TruncateAt.MARQUEE)`启用跑马灯效果。 4. 如果需要,手动调用`requestFocus()`以获得焦点。 5. 使用`...

    Android中捕获TTextView文本中的链接点击事件方法

    接着,通过`getSpans`找到所有URLSpan对象,并调用`setLinkClickable`方法为每个URL设置ClickSpan。 ```java private CharSequence getClickableHtml(String html) { Spanned spannedHtml = Html.fromHtml(html); ...

    Android中TextView显示插入的图片实现方法

    当遇到`<img>`标签时,ImageGetter的`getDrawable(String src)`方法会被调用,我们可以在这个方法中加载并返回对应的Drawable对象。以下是一个基本的实现: ```java mTVText.setText(Html.fromHtml(...

    Android之使用Android-query框架开发实战(一)

    这里`R.id.icon`是ImageView的ID,`R.drawable.icon`是设置的图片资源,`visible()`用于显示ImageView,`clicked()`用于添加点击事件,第二个参数是方法名,该方法需是public修饰的。 ### 对于Fragment的支持 在...

    Android TreeView效果实现方法(附demo源码下载)

    ```java public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = mInflater.inflate(R.layout.outline, null); holder = new ...

    python将文本中的空格替换为换行的方法

    通过`read()`方法读取整个文件内容到变量`db`,接着调用字符串的`replace()`方法,将空格(' ')替换为换行符('\n'),最后关闭文件。 `replace()`函数是Python字符串的一个内置方法,它能够查找字符串中的指定...

    Android中实现Webview顶部带进度条的方法

    在`onCreate`方法中,首先调用`setContentView`加载布局,然后通过`findViewById`获取到`ProgressBar`和`WebView`的引用: ```java final ProgressBar bar = (ProgressBar)findViewById(R.id.myProgressBar); final...

    jsp开发环境搭建说明

    - 修改系统环境变量`PATH`,在其原有值的基础上追加`%JAVA_HOME%\bin`,确保可以直接调用Java命令。 - **验证安装**: - 打开命令行工具,输入`java -version`,如果能正确显示JDK版本信息,则表示安装成功。 ##...

    Android编程实现对话框形式进度条功能示例

    最后,确保对话框可取消,并调用`show()`方法来显示它: ```java prodialog.setCancelable(true); prodialog.show(); ``` 在布局文件中,我们通常不需要特别处理,因为`ProgressDialog`有自己的默认布局。但如果你...

Global site tag (gtag.js) - Google Analytics