加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Ruby中包装现有Java库的最佳方法(JRuby)

发布时间:2020-12-16 19:11:36 所属栏目:百科 来源:网络整理
导读:我希望在中型 Java库上放置一个ruby(J Ruby)包装器,我正在寻找有关从包装到策略的各种最佳实践的建议和文章. 我在这里找到了一个相对过时的(2009)关于这个主题的讨论:http://www.ruby-forum.com/topic/188447. 我想使用最新版本的JRuby. 解决方法 我为Java
我希望在中型 Java库上放置一个ruby(J Ruby)包装器,我正在寻找有关从包装到策略的各种最佳实践的建议和文章.

我在这里找到了一个相对过时的(2009)关于这个主题的讨论:http://www.ruby-forum.com/topic/188447.

我想使用最新版本的JRuby.

解决方法

我为Java库编写了一些包装器( Eurydice,HotBunnies,MessagePack,Rubydoop和 Mikka等).其中一些只是适应Java库的JRuby代码,其中一些包括与JRuby运行时接口的Java代码( MessagePack实际上完全用Java编写).

我发现的问题并不是很好解决了如何为Java库发送JAR文件.你不想把它包含在gem中,因为那样你最终会最终进入JAR地狱.像Netty这样的常见Java库将捆绑在许多宝石中,最终你会拥有捆绑不兼容版本的宝石.我已经通过打包只包含Java库JAR的宝石解决了这个问题(参见例如scala-library-jars和ning-compress-jars),然后让我的包装器依赖于那个gem.它不是一个特别可扩展的解决方案,但至少它比在包装器gem中捆绑JAR更易于管理.

你的问题不清楚你想要知道什么,我建议你修改并更具体.然而,这里有一些随意的东西

>使Ruby更易于访问Java API的一种快速方法是向Java类和接口添加方法.它就像打开Ruby类一样简单(但Java接口是模块),并且可以更容易地在Ruby中使用Java对象.这些方法只能由Ruby看到,它们对Java代码不可见.>不要将java_import放入全局范围.这会给每个人带来很多麻烦.请记住,java_import与Java中的导入不同,它只是文件的本地,它实际上是在作用域中创建别名.将java_import和include_package包装在模块中.>不要使用导入 – 它与Rake不兼容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读