我想在Ruby中访问Java库,例如Kafka已经为每个操作提供了jar,如果我想从Ruby中使用它需要做什么?
也许我只需要运行shell命令在Ruby中运行Jar,或者我是否需要在Ruby中移植库?如果它归结为移植库,那么该怎么做呢?
提前谢谢
PS:Java,Ruby或Kafka就是例子。我需要知道的是如何移植图书馆。当然,如果你添加一些代码示例,我也会非常高兴:)
答案 0 :(得分:1)
我同意Aetherus的说法,最快捷,最便捷的方式就是使用JRuby。但是我相信还有其他选择,而不是与外部Java进程通信。选择什么可能取决于您要调用的代码。我看到至少有两个其他选择。
这两条路径都可能会给你带来很大的痛苦,但如果留在MRI上很重要,那么这次旅行可能是值得的。玩得开心!
答案 1 :(得分:0)
使用JRuby,您可以导入jar文件,然后在该jar中包含您需要的类:
require 'java'
require '/path/to/your.jar'
include_class 'com.really.long.ClassName'
但是除了JRuby之外的Ruby实现,你别无选择,只能与外部java进程通信(通过socket,IPC,kill,......)。