使用来自Clojure的gem中提供的JRuby类
我是一个相当简单的需要在Clojure内使用
Ruby类.复杂的因素是该类是以宝石提供的.最佳方法是按照以下方式设置我的Leiningein项目文件:
(project foo "" ... :dependencies [[clojure ...] [jruby ... ]]) 同样,我更愿意将gem及其依赖项检查到本地repo目录中.因此,从我的理想用途就是: (ns bar.baz (require [jruby.something :as jruby]) (def obj (jruby/CreateAnInstance "TheGemClass")) (def result (jruby/CallAMethod obj "method_name" some args)) 谢谢. 解决方法
以下是使用JRuby和Clojure获得
hello-world gem运行的几个步骤的简短列表和几个参考.实际上,这些步骤只是简要介绍了引用的材料如何组合起来(带有一些project.clj条目).第一个参考文献
Haml on Clojure Web App在Yoko Harada(@ yokolet的)博客上,使用了一种稍微不同的方式来调用JRuby,但是包括关于如何编写require(“…”)行的关键说明,用于JRuby和gems类路径.
>将[org.jruby / jruby-complete“1.6.7.2”]添加到您的依赖关系中,并让Leiningen获取依赖关系. # see reference 4 GEM_HOME=gems GEM_PATH=gems java -jar ~/.m2/repository/org/jruby/jruby-complete/1.6.7.2/jruby-complete-1.6.7.2.jar -S gem install hello-world 在项目根. ;;; see reference 2,first snippet (let [runtime (JavaEmbedUtils/initialize (list)) evaler (JavaEmbedUtils/newRuntimeAdapter)] (doseq [ruby-expr ["require('rubygems')" "require('gems/hello-world-1.2.0/lib/hello-world')"]] (.eval evaler runtime ruby-expr))) 看到零返回值,以及打印到终端的几行,REPL服务已经开始. 参考文献: > Haml on Clojure Web App on Yoko Harada(@ yokolet’s)博客 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |