我常常建议同事们使用ruby代替java来进行开发,但是,在公司内推广ruby有个必须考虑的问题——大多数人是工作在windows上的,而在windows上开发ruby会遇到一些问题,其中之一就是各种本地库——ruby本身可以很容易的开发c扩展,代价是这些扩展在安装时需要编译,而windows上会编译源码的人很少......
我的建议是可以采用jruby,在jruby社区的努力下,很多高质量的ruby库有了纯java实现,拜java所赐,这些三方库可以很容易的跨平台使用。
安装jruby和安装java类似,下载、解压、设置path变量即可。
就像java有maven作为三方库依赖管理工具一样,ruby社区也有相应的工具,它叫做 rubygem
,或者简称 gem,jruby是自带gem的,执行 gem -v 可以查看详情
c:\> gem -v
1.3.6
gem用于管理软件包的多个版本,但是gem本身也有升级的可能,所以安装好以后建议首先升级gem,命令是:
gem update --system
顺便说一下,有时候升级 gem系统会遇到失败,例如
c:/> gem update --system
Updating RubyGems
Updating rubygems-update
Successfully installed rubygems-update-1.8.1
Updating RubyGems to 1.8.1
Installing RubyGems 1.8.1
...../jruby-1.5.6/lib/ruby/site_ruby/1.8/rubygems/defaults/jruby.rb:1224:in `require': undefined method `set_paths' for class `#<Class:01x5bf8d5b0>' (NameError)
from /home/john/.rvm/gems/jruby-1.5.6/gems/rubygems-update-1.8.1/lib/rubygems.rb:1224
from /home/john/.rvm/gems/jruby-1.5.6/gems/rubygems-update-1.8.1/lib/rubygems.rb:24:in `require'
from setup.rb:24
这个应该是 gem 1.8.1 的 bug ,处理的方式是使用升级到较低的版本 ,这个需要手工完成:
; 下载 http://production.cf.rubygems.org/rubygems/rubygems-update-1.7.2.gem 然后执行下面的命令
c:/> gem install --local ./rubygems-update-1.7.2.gem
Successfully installed rubygems-update-1.7.2
1 gem installed
Installing RDoc documentation for rubygems-update-1.7.2...
$ update_rubygems
RubyGems 1.7.2 installed
=== 1.7.2 / 2011-04-05
* 1 Bug Fix:
* Warn on loading bad spec array values (ntlm-http gem has nil in its cert
chain)
.....
c:/> gem -v
1.7.2
另外,我们有时需要 ssl 支持,为了以后方便,建议安装 openssl 支持
c:\> gem install jruby-openssl
gem和maven类似,它也在一个服务器上维护了所有三方包的依赖关系,这个服务器,我们叫做source:
c:/> gem source
*** CURRENT SOURCES ***
http://rubygems.org/
gem source有时会很慢(搞技术的都知道我们大中华局域网有一个防火墙吧,不过也有服务器本身承载能力的原因),所以可以在公司内部建立一个代理服务,我在淘宝内部一般会开启我的 PC 提供这个服务,地址是 t-lifu.taobao.ali.com ,端口 8808 (仅限内网),你可以用这个命令添加 gem source -a http://t-lifu.taobao.ali.com:8808
ruby的东西一般都很直白,对刚才的命令,linux用户直接看你的$HOME/.gemrc文件就知道是怎么回事了,windows类似。
与maven相比,gem 并不管项目的前世今生,目的更纯粹,因而也更简单,比如下列命令:
gem install rails # 在本地硬盘上安装 rails (会自动install依赖包)
gem uninstall rails # 删除硬盘上的rails
gem list # 列出本地已经安装的三方包
gem search -r mongo # 在服务器上搜索名字形如 *mongo* 的三方包
有时候,你在命令行环境不知道怎么绕开那堵墙,那可以把需要的软件包(我们叫它gem包)下载下来单独安装,当然,这时你要自己注意软件包依赖:
gem install --local ./bouncy-castle-java-1.5.0145.2.gem
这并不是全部,你可以用 gem help 查看所有命令,或者用 gem help <command> 查看某个命令的详细说明:
c:/> gem help source
Usage: gem sources [options]
Options:
-a, --add SOURCE_URI Add source
-l, --list List sources
......
在windows下,还有一个特别恼人的问题需要注意——console下的编码,21世纪已经进行了十年,unicode越来越深入韧性,很多linux的发布版也都支持unicode家族,但是windows(例如 xp )在这一方面确实支持有限,如果你在windows下面敲命令,往往会遇到乱码的问题,这个其实很好解决——改变 codepage 就行:
chcp 65001
然后修改字体,但是这还没有完,这时候的console在驱动脚本时会有bug,所以诸如 rails, rake 这样的命令都有可能出问题(表现为不执行任何操作),好在有办法解决:
jruby -S rails ...... ; -S 参数表示在path环境变量中寻找ruby脚本,并用jruby执行
好了,现在你基本上已经了解了在windows环境下编写ruby程序的基础知识,do it and have fun.
分享到:
相关推荐
总结来说,《NetBeans Ruby and Rails IDE with JRuby 2009》是一本详尽介绍了如何使用NetBeans作为Ruby和Rails开发工具的指南。它不仅覆盖了从安装到日常开发的所有方面,还深入探讨了如何利用NetBeans的各种高级...
- **稳定性增强**:1.6.4版本相对于早期版本,可能包含了一些关键的bug修复和性能改进,使得JRuby在Windows上的运行更加稳定。 - **API更新**:可能引入了新的API接口或改进了原有接口,以便更好地与Java类库交互。...
通过在JVM上运行,JRuby可以无缝地与Java代码交互,使得开发人员能够利用Ruby的生产力优势以及Java的稳定性和企业级服务。 JRuby的实现方式是将Ruby源代码转换为Java字节码,然后在JVM上执行。这种转换过程涉及到...
总的来说,这个“RUBY+1.8 windows UI”提供了在Windows系统上方便快捷地安装和使用Ruby 1.8的途径,适合那些想要学习或使用这个早期版本的开发者。通过这个安装程序,用户可以享受到完整的开发环境,包括必要的工具...
JRuby是面向Ruby、基于Java虚拟机(JVM)的一种解释程序,它结合了Ruby语言的简易性和功能强大的JVM的执行机制,包括与Java库 全面集成。Rails彻底加快及简化了Web应用的开发,不过它让人觉得不够成熟,特别是在高端...
1. **平台兼容性**:由于JRuby运行在JVM上,它可以无缝地运行在任何支持JVM的操作系统上,包括Windows、Linux、macOS等。 2. **Java集成**:JRuby可以直接调用Java库,反之亦然,使得Java开发者可以利用Ruby的便利...
本文介绍了如何用JRuby开发Web Service。用JRuby开发Web Service,需要安装ActionWebService。安装完毕之后便可以开始调用及部署了。
《JRuby和Rails-让Ruby语言融入于Java项目》是一本深入探讨如何在Java环境中使用JRuby和Rails框架的教程。这本书旨在帮助开发者理解和实践如何将Ruby on Rails的灵活性和生产力引入到Java企业级开发中,从而提升软件...
JRuby 是一个开源的、高性能的 Ruby 解释器,它能够将 Ruby 代码编译成 Java 字节码,从而在 Java 虚拟机(JVM)上运行。JRuby 的出现使得 Ruby 开发者能够利用 JVM 的强大功能和丰富的库,同时也让 Java 开发者能够...
JRuby window X64 开发软件
JRuby 是一种 Java 实现的 Ruby 解释器,它允许 Ruby 代码在 JVM(Java 虚拟机)上运行,从而利用 Java 平台的性能和生态系统。 【知识点一:JRuby 基础】 1. JRuby 定义:JRuby 是 Ruby 语言的一个开源实现,它的...
JRuby是Java平台上的一个实现,它允许开发者在Java虚拟机(JVM)上运行Ruby编程语言。这个“jruby-bin-1.3.1.zip”压缩包是JRuby的一个早期版本,专为Ruby语言的研发提供必要的工具和环境。在这个版本中,重点是兼容...
总之,这个基于JRuby的HDFS客户端为Ruby开发者提供了与Hadoop生态系统交互的桥梁,简化了在Ruby环境中处理HDFS任务的过程。通过深入研究"rhdfs-master"源代码,开发者不仅可以学习到如何使用HDFS,还能了解如何在...
JRuby 是一种在 Java 平台上实现的 Ruby 解释器,它允许开发人员通过 Java 虚拟机(JVM)执行 Ruby 代码。JRuby 的独特之处在于其能够无缝地集成 Java 库,包括 Java Swing,这使得 JRuby 成为开发桌面应用程序的一...
JRuby的出现使得Ruby代码能够在Java环境中运行,同时保持了Ruby的动态性和灵活性,为Java开发者提供了新的开发工具和方法。 #### Ruby on Rails:Web 2.0时代的高效开发框架 Ruby on Rails(简称RoR或Rails)是一...
3. **跨平台**:基于JVM,JRuby可以在任何支持JVM的操作系统上运行,包括Windows、Linux、macOS等。 4. **开发效率**:Ruby的简洁语法和Rails框架的便利性,使得开发过程更加高效,结合Java的稳定性和成熟性,使得...
**JRuby 安装与配置指南** JRuby 是一个基于 Java 平台的 Ruby 实现,它允许开发者利用 Ruby 语言的优势同时...遵循上述步骤,你将能够顺利地在 Windows 系统上安装并配置 JRuby 1.1.2,同时利用 Java 类库进行开发。
jruby与java使用开发,听说jruby能是swing的调用变为更简单
例如,在Linux/Unix上安装Ruby,可以遵循特定章节的指导,而在Windows上则可能需要不同的步骤。在安装完成后,可以通过命令行工具(如IRb)来测试Ruby环境是否配置正确。 通过阅读无涯教程网提供的Ruby教程,读者...