`
renzhen
  • 浏览: 248688 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jruby获取运行的操作系统

阅读更多
    最近在写PHP时,通过PHP_OS来判断当前的操作系统是在Windows下还是类Unix操作系统下,我当时想如果使用Ruby该怎么判断当前的操作系统呢?于是在工作之余,搜索了一下Google,在javaeye上找到了一篇robbin的老帖子:获取ruby运行的操作系统版本
    robbin通过使用环境变量RUBY_PLATFORM当中获得操作系统信息,代码简洁明了,我在MRI下试验通过,可惜在JRuby下不行,因为JRuby中的RUBY_PLATFORM在所有操作系统下都显示java,无法判断真实的操作系统。
    在搜索的过程中,我找到了另一种判断ruby的操作系统的方法,那就是使用rbconfig,代码如下:
   
      require 'rbconfig'
      def windows? 
         !(Config::CONFIG['target_os']=~/mswin32/).nil?
      end 
    

    通过以上代码就可以在JRuby下判断当前操作系统了,在MRI也可以运行。
    原理是什么呢?在MRI中,我们可以在lib\ruby\1.8\i386-mswin32目录下(linux下是x86_64-linux)找到rbconfig.rb。在JRuby中却找不到这个文件,通过查看JRuby的源代码发现,在目录src\org\jruby\libraries下有一个RbConfigLibrary.java,代码是通过调用JVM中os.name的Property来动态判断当前的操作系统,并填充到CONFIG变量中。
0
0
分享到:
评论

相关推荐

    jruby:JRuby,Ruby在JVM上的实现

    您的操作系统可能在程序包管理器中提供了JRE和JRuby,但是您可能会发现此版本非常旧。 一种替代方法是使用。 对于您将需要插件。 您可能会发现系统软件包管理器可以提供这些。 要查看可用的JRuby版本,请运行: $ ...

    WiiRemoteJRuby:用于处理 WiiRemoteJ 库的包装器

    WiiRemoteJ 在某些操作系统上可能无法正常工作或根本无法正常工作。 此类问题似乎取决于底层蓝牙堆栈。 您将需要获取 WiiRemoteJ jar 和任何所需的蓝牙库。 请查看了解详细信息。 请注意,WiiRemoteJ

    WiiUseJRuby:(J) Ruby 封装了 Wii 遥控器的 WiiUseJ 库

    WiiUseJ 在某些操作系统上可能无法正常工作或根本无法正常工作。 此类问题似乎取决于底层蓝牙堆栈。 您将需要获取 WiiUseJ jar 和任何所需的蓝牙库。 详情请查看。 WiiUseJRuby 假设您已经使用所需的 WiUseJ 文件...

    JAVA上百实例源码以及开源项目

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    JAVA上百实例源码以及开源项目源代码

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    java开源包1

    DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列...

    java开源包11

    DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列...

    java开源包2

    DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列...

    java开源包3

    DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列...

    java开源包6

    DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列...

    java开源包5

    DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列...

    java开源包10

    DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列...

    java开源包4

    DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列...

    java开源包8

    DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列...

    java开源包7

    DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列...

    java开源包9

    DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列...

    java开源包101

    DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列...

    Java资源包01

    DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列...

Global site tag (gtag.js) - Google Analytics