jruby与原生的ruby vm之间最大的区别是多了一个jvm作为中间层,好处是可以借助成熟的java 虚拟机技术,缺点就是不能象以前那样使用很多本地编译的动态链接库,这个问题的解决只能靠为这些库开发java版本来搞定。
例如,很多ruby开发者都喜欢nokogiri这个库,它处理html、xml非常方便,但是之前它是基于本地库的,所以jruby环境下不好用,不过现在有了 java 版本
$ gem list nokogiri
*** LOCAL GEMS ***
nokogiri (1.4.4.2 java)
不过,实际使用的时候还有一个问题,它需要有xslt哭的支持,否则就会出错:
$ rails s
/home/john/.rvm/rubies/jruby-1.5.6/lib/ruby/site_ruby/shared/ffi/library.rb:28:in `ffi_lib': Could not
open library 'xslt' : xslt: cannot open shared object file: No such file or directory. Could not open
library 'libxslt.so' : libxslt.so: cannot open shared object file: No such file or directory (LoadError)
from /home/john/.rvm/rubies/jruby-1.5.6/lib/ruby/site_ruby/shared/ffi/library.rb:10:in `map'
from /home/john/.rvm/rubies/jruby-1.5.6/lib/ruby/site_ruby/shared/ffi/library.rb:10:in `ffi_lib'
from /home/john/.rvm/gems/jruby-1.5.6/gems/nokogiri-1.4.4.2-java/lib/nokogiri/ffi/libxml.rb:13
from /home/john/.rvm/gems/jruby-1.5.6/gems/nokogiri-1.4.4.2-java/lib/nokogiri/ffi/libxml.rb:239
:in `require'
但是 ruby-xslt 是不能用在这里的,因为它也不是纯ruby库,因此不能用在jruby上
$ gem install ruby-xslt
Building native extensions. This could take a while...
ERROR: Error installing ruby-xslt:
ERROR: Failed to build gem native extension.
/home/john/.rvm/rubies/jruby-1.5.6/bin/jruby extconf.rb
WARNING: JRuby does not support native extensions or the `mkmf' library.
Check http://kenai.com/projects/jruby/pages/Home for alternatives.
extconf.rb:31: undefined method `enable_config' for main:Object (NoMethodError)
最后找到的是这个库:
$ gem install saxony
Fetching: saxony-0.3.3.gem (100%)
Successfully installed saxony-0.3.3
1 gem installed
Installing RDoc documentation for saxony-0.3.3...
$ rails s
=> Booting WEBrick
=> Rails 3.0.5 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-05-21 11:16:11] INFO WEBrick 1.3.1
[2011-05-21 11:16:11] INFO ruby 1.8.7 (2010-12-03) [java]
[2011-05-21 11:16:16] INFO WEBrick::HTTPServer#start: pid=3755 port=3000
ok,现在可以用 nokogiri 了
分享到:
相关推荐
对于 JRuby 1.1.2,推荐使用 Java 1.6,因为较低版本如 JDK 1.5 可能存在兼容性问题。尽管理论上 JRuby 1.1.1 可能与 JDK 1.4 兼容,但为了确保稳定性和最佳性能,还是推荐使用官方建议的 JDK 版本。 **二、获取 ...
3. 使用 JRuby 的 `irb` (交互式 Ruby shell) 或者运行 Ruby 脚本,如 `jruby your_script.rb`。 **4. JRuby 与 Java 交互** JRuby 提供了多种方式来实现 Java 和 Ruby 代码的交互: - **Java 方法调用**:可以...
2. 混合语言开发:JRuby 允许开发者在 Java 项目中使用 Ruby 代码,或者反之,以利用两种语言的优点。 3. 脚本自动化:JRuby 可作为 Java 系统中的脚本语言,用于自动化任务,例如配置管理、测试自动化等。 【知识...
3. **性能提升**:得益于JVM的优化,JRuby在某些场景下可以提供比纯解释执行的Ruby更好的性能。 4. **并发性**:JRuby可以充分利用JVM的多线程特性,实现高效的并发处理。 回到“jruby-src-1.0.zip”这个压缩包,...
- **与Java集成**:使用`jruby -S gem install jruby-stdlib`安装stdlib库,然后可以使用Java的`ScriptEngineManager`来执行Ruby代码。 总之,"jruby-bin-1.3.1.zip"是一个方便开发者进行JRuby语言研发的工具包,...
4. **Rails支持**:对于Web开发,JRuby支持Ruby on Rails框架,可以在Windows环境下搭建高效稳定的Rails应用服务器。 5. **并发性**:JVM的线程模型为JRuby提供了良好的并发支持,适合处理高并发场景。 **JRuby ...
为了开始使用JRuby,你需要下载并安装JRuby,配置环境变量,然后可以像使用普通Ruby那样运行Ruby代码。开发过程中,你可以使用像`jirb`(JRuby交互式 shell)这样的工具,或者通过`bundle`管理Gem(Ruby的包管理系统...
本文将详细讲解如何监控JRuby脚本的执行,以及如何使用jprofiler这一强大的性能分析工具。 首先,理解JRuby的工作原理至关重要。JRuby本质上是通过启动JVM来读取和执行Ruby脚本。它既可以解释执行脚本,也可以将...
标题 "jruby-1.5.5+OperaWatir+RSpec" 暗示了这是一个关于使用 JRuby 1.5.5 版本、OperaWatir 和 RSpec 进行自动化测试的项目或者资源集合。现在,我们将深入探讨这三个关键组件以及它们在 IT 领域中的应用。 JRuby...
jruby安装包 和 jruby的lib库 JRuby是面向Ruby、基于Java虚拟机(JVM)的一种解释程序,它结合了Ruby语言的简易性和功能强大的JVM的执行机制,包括与Java库 全面集成。Rails彻底加快及简化了Web应用的开发,不过它让...
请参阅以获取有关如何将Weka与JRuby结合使用以及一些示例代码片段的详细信息。 发展 使用git clone git@github.com:paulgoetze/weka-jruby.git查看回购。 设置本地环境变量export JARS_VENDOR=fal
3. JRuby 支持使用 JRuby-Rack 运行 Rails 应用,可以在 Java 应用服务器上部署 Ruby on Rails 项目。 4. JRuby 还可以作为 Java 代码调用 Ruby 代码的桥梁,通过 JRuby API 实现 Java 和 Ruby 之间的互操作。 关于...
- **性能提升**:由于JVM的优化,JRuby在某些场景下比MRI(Ruby的原始C语言实现)有更高的性能。 - **企业级支持**:JRuby可以利用Java的成熟企业级服务,如数据库连接池、安全管理、集群等。 - **跨平台**:...
通过阅读《JRuby实战》这本书,你将获得丰富的实践经验和具体案例,帮助你快速掌握JRuby的使用,从而在实际项目中发挥其优势。这本书可能涵盖以上所有话题,并提供详细的示例代码和实践指导,确保你能够在短时间内从...
通过JRuby on Rails,Java开发者可以使用Ruby的简洁语法和Rails的高效开发模式,同时享受Java的成熟技术栈和企业级支持。本书通过一系列实践项目,展示了如何将Rails应用与Java企业应用环境整合,包括如何利用Java ...
JRuby是Java平台上的一个Ruby实现,它允许开发者使用Ruby语言编写程序,同时利用Java的类库和运行环境。JRuby的出现使得Ruby开发者能够无缝集成Java生态系统,包括大量的开源库和企业级应用。在本例中,JRuby被用来...
总之,JRuby+Swing 的组合为开发人员提供了丰富的功能和便利性,特别是当使用 Monkeybars 这样的库时,可以有效管理复杂的桌面应用开发。无论是简单的内联调用、DSL 库,还是 MVC 框架,都有其适用场景,开发者可以...
本文介绍了如何用JRuby开发Web Service。用JRuby开发Web Service,需要安装ActionWebService。安装完毕之后便可以开始调用及部署了。