快速业务通道

在Ruby on Rails应用程序中重用Java代码 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
e # specify the full package path to the classes. tararchive = Rjb::import(''com.ice.tar.TarArchive'') fileinputstream = Rjb::import(''java.io.FileInputStream'') file = Rjb::import(''java.io.File'') # Create objects of the classes. Use the new method  directly or use # the ''new_with_sig'' call to invoke overloaded constructors  with arguments # Directory you want to extract the files in this case,  the current directory  file_instance = file.new_with_sig(''Ljava.lang.String;'',''.'') # inputstream instance of the file to extract  fileinputstream_instance = fileinputstream.new_with_sig (''Ljava.lang.String;'',''test.tar'') # tararchive instance of the file to be extracted. tararchive_instance = tararchive.new_with_sig (''Ljava.io.InputStream;''\          ,fileinputstream_instance) # Invoke the method from the class and capture the  results. # Use either the direct call of the method, # or the ''_invoke'' call to invoke overloaded  methods. p ''Extracting file.....'' tararchive_instance.extractContents(file_instance) p ''Done...''

尝试这些代码,将清单 2 中的代码保存到一个文件中,并且扩展名为 .rb( 或使用 下载 中的 rjb-javatar.rb),然后在 Ruby 解释程序中运行。

结束语

在全新的 Rails 应用程序中重用已有的遗留 Java 代码其实非常简单,方式 如下:

安装 Java SDK 和 RJB。

将 JAVA_HOME 和 LD_LIBRARY_PATH 环境变量导出到您的 Rails 应用程序的 environment.rb 文件中。

在应用程序中包括 rjb 库。

通过指定希望使用的 JAR 文件,装载 RJB 和 JVM。

从希望使用的 JAR 文件中将类导入到 Ruby 变量并创建类的对象。

开始在 Rails 应用程序中使用刚刚创建的类,就像使用任何 Ruby 对象一样 。

如果希望在 Rails 应用程序中重用已经使用 Java 代码实现的业务逻辑, RJB 非常有用,并且不需要使用 Ruby 重新实现。它同时提供了 Ruby on Rails 和 Java 编程的优点。

考虑替代方法

还可以使用一种称为 JRuby 的替代方法,它可以实现与 RJB 相同的目标。 JRuby 是使用 Java 语言实现的完整的 Ruby 包,使 Ruby 能够运行在 JVM 之 上。使用 JRuby,您可以访问所有 Java 库。JRuby 要求安装特定于 JRuby 的 Ruby Gems,因为针对非 Java 的 Ruby 的普通 Ruby Gems 不能与 JRuby 兼容 。

RJB 和 JRuby 各有优缺点。对于 JRuby,Ruby 全部在 JVM 之上运行,每个 Ruby 调用将经过 JVM,这将使执行变得非常缓慢。同样,如果已经设置了一个 Rails 应用程序,需要从头开始设置,以便 JRuby 访问 Java 代码。作为原生 Ruby 包,RJB 易于安装,并且可以在已有的 Rails 设置中使用。如果需要在您 的 Rails 应用程序中快速调用一些 Java 代码片段,那么 RJB 是最好的选择。

整体而言,在 Rails 应用程序中重用遗留 Java 代码的能力非常有用。使用 Java 语言实现的设计和编写都非常良好的业务逻辑不会搁置不用,相反,可以 在新的 Web 应用程序中继续发挥有用的功能。

本文配套源码

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号