`
fsword
  • 浏览: 168236 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

jruby下使用nokogiri、xslt

阅读更多

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 了

0
0
分享到:
评论

相关推荐

    如何安装与配置JRuby

    对于 JRuby 1.1.2,推荐使用 Java 1.6,因为较低版本如 JDK 1.5 可能存在兼容性问题。尽管理论上 JRuby 1.1.1 可能与 JDK 1.4 兼容,但为了确保稳定性和最佳性能,还是推荐使用官方建议的 JDK 版本。 **二、获取 ...

    jruby1.7.8版本呢

    3. 使用 JRuby 的 `irb` (交互式 Ruby shell) 或者运行 Ruby 脚本,如 `jruby your_script.rb`。 **4. JRuby 与 Java 交互** JRuby 提供了多种方式来实现 Java 和 Ruby 代码的交互: - **Java 方法调用**:可以...

    org.jruby.rar

    2. 混合语言开发:JRuby 允许开发者在 Java 项目中使用 Ruby 代码,或者反之,以利用两种语言的优点。 3. 脚本自动化:JRuby 可作为 Java 系统中的脚本语言,用于自动化任务,例如配置管理、测试自动化等。 【知识...

    jruby-src-1.0

    3. **性能提升**:得益于JVM的优化,JRuby在某些场景下可以提供比纯解释执行的Ruby更好的性能。 4. **并发性**:JRuby可以充分利用JVM的多线程特性,实现高效的并发处理。 回到“jruby-src-1.0.zip”这个压缩包,...

    jruby-bin-1.3.1.zip

    - **与Java集成**:使用`jruby -S gem install jruby-stdlib`安装stdlib库,然后可以使用Java的`ScriptEngineManager`来执行Ruby代码。 总之,"jruby-bin-1.3.1.zip"是一个方便开发者进行JRuby语言研发的工具包,...

    jruby_windows_1_6_4安装文件

    4. **Rails支持**:对于Web开发,JRuby支持Ruby on Rails框架,可以在Windows环境下搭建高效稳定的Rails应用服务器。 5. **并发性**:JVM的线程模型为JRuby提供了良好的并发支持,适合处理高并发场景。 **JRuby ...

    Ruby-JRuby一个Ruby语言的Java实现

    为了开始使用JRuby,你需要下载并安装JRuby,配置环境变量,然后可以像使用普通Ruby那样运行Ruby代码。开发过程中,你可以使用像`jirb`(JRuby交互式 shell)这样的工具,或者通过`bundle`管理Gem(Ruby的包管理系统...

    如何监控JRuby脚本的执行

    本文将详细讲解如何监控JRuby脚本的执行,以及如何使用jprofiler这一强大的性能分析工具。 首先,理解JRuby的工作原理至关重要。JRuby本质上是通过启动JVM来读取和执行Ruby脚本。它既可以解释执行脚本,也可以将...

    jruby-1.5.5+OperaWatir+RSpec

    标题 "jruby-1.5.5+OperaWatir+RSpec" 暗示了这是一个关于使用 JRuby 1.5.5 版本、OperaWatir 和 RSpec 进行自动化测试的项目或者资源集合。现在,我们将深入探讨这三个关键组件以及它们在 IT 领域中的应用。 JRuby...

    jruby_windows1.7and bin1.7

    jruby安装包 和 jruby的lib库 JRuby是面向Ruby、基于Java虚拟机(JVM)的一种解释程序,它结合了Ruby语言的简易性和功能强大的JVM的执行机制,包括与Java库 全面集成。Rails彻底加快及简化了Web应用的开发,不过它让...

    weka-jruby:使用JRuby进行机器学习和数据挖掘

    请参阅以获取有关如何将Weka与JRuby结合使用以及一些示例代码片段的详细信息。 发展 使用git clone git@github.com:paulgoetze/weka-jruby.git查看回购。 设置本地环境变量export JARS_VENDOR=fal

    jruby-core-1.7.12.zip

    3. JRuby 支持使用 JRuby-Rack 运行 Rails 应用,可以在 Java 应用服务器上部署 Ruby on Rails 项目。 4. JRuby 还可以作为 Java 代码调用 Ruby 代码的桥梁,通过 JRuby API 实现 Java 和 Ruby 之间的互操作。 关于...

    jruby-bin-0.9.0.tar.gz

    - **性能提升**:由于JVM的优化,JRuby在某些场景下比MRI(Ruby的原始C语言实现)有更高的性能。 - **企业级支持**:JRuby可以利用Java的成熟企业级服务,如数据库连接池、安全管理、集群等。 - **跨平台**:...

    JRuby 实战入门

    通过阅读《JRuby实战》这本书,你将获得丰富的实践经验和具体案例,帮助你快速掌握JRuby的使用,从而在实际项目中发挥其优势。这本书可能涵盖以上所有话题,并提供详细的示例代码和实践指导,确保你能够在短时间内从...

    jRuby On Rails WEB2.0

    通过JRuby on Rails,Java开发者可以使用Ruby的简洁语法和Rails的高效开发模式,同时享受Java的成熟技术栈和企业级支持。本书通过一系列实践项目,展示了如何将Rails应用与Java企业应用环境整合,包括如何利用Java ...

    用JRuby读取Excel文件

    JRuby是Java平台上的一个Ruby实现,它允许开发者使用Ruby语言编写程序,同时利用Java的类库和运行环境。JRuby的出现使得Ruby开发者能够无缝集成Java生态系统,包括大量的开源库和企业级应用。在本例中,JRuby被用来...

    JRuby+Swing是开发人员钟情的选择

    总之,JRuby+Swing 的组合为开发人员提供了丰富的功能和便利性,特别是当使用 Monkeybars 这样的库时,可以有效管理复杂的桌面应用开发。无论是简单的内联调用、DSL 库,还是 MVC 框架,都有其适用场景,开发者可以...

    使用JRuby开发Web Service全攻略

    本文介绍了如何用JRuby开发Web Service。用JRuby开发Web Service,需要安装ActionWebService。安装完毕之后便可以开始调用及部署了。

Global site tag (gtag.js) - Google Analytics