`
renzhen
  • 浏览: 251155 次
  • 性别: 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+Swing是开发人员钟情的选择

    1. **跨平台部署**:依赖于 JVM,保证了在不同操作系统上的兼容性。 2. **丰富的组件选择**:利用 Swing 提供的各种 UI 组件,支持复杂交互。 3. **可视化编辑**:可以配合图形化 UI 布局编辑器,如 NetBeans 或 ...

    jruby-core-1.7.12.zip

    JRuby 允许开发者在 Java 平台上运行 Ruby 代码,同时利用 Java 生态系统的强大功能。JRuby 核心库包含了解释器、编译器、垃圾回收以及与其他 Java 类库交互的接口。 描述中提到的 "sbuild-https-plugin.zip" 是一...

    用JRuby读取Excel文件

    JRuby的出现使得Ruby开发者能够无缝集成Java生态系统,包括大量的开源库和企业级应用。在本例中,JRuby被用来读取Excel文件,这是因为它可以调用Java的API,如Apache POI或JExcelApi,这些API专门用于处理Microsoft ...

    jruby-maven-plugin-1.0.1.zip

    1. **JRuby**: JRuby是Ruby编程语言的一个实现,它运行在Java平台上。通过JRuby,Java开发者可以利用Ruby的简洁语法和强大的元编程能力,同时保持与Java生态系统(如Maven)的兼容性。 2. **Maven插件**:Maven是一...

    jruby:JRuby,Ruby在JVM上的实现

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

    hdfs client for ruby (just jruby) hdfs客户端 基于jruby.zip

    JRuby允许Ruby代码与Java平台无缝集成,因此这个客户端能够利用Java的HDFS API来操作HDFS。 HDFS是Apache Hadoop项目的核心组件之一,它是一个高度可扩展的、容错性强的分布式文件系统,特别适合处理和存储大量数据...

    HBase使用的jar包

    Get操作用于获取单行数据,而Scan则可以用来批量扫描表中的多行数据。 在使用HBase进行查询时,我们还需要关注性能优化。例如,通过合理设置RowKey,可以提高查询效率;利用Bloom Filter减少不必要的磁盘I/O;以及...

    巧妙规避Java与Ruby语言迁移过程中的风险

    然而,Java的复杂性,如C++风格的指针操作和内存管理,可能会带来学习曲线陡峭和潜在的代码错误问题。这些问题增加了采用Java的风险,尤其是在对性能要求严格的环境中。 相反,Ruby语言,特别是与Rails框架结合,因...

    JRE7-32bit

    标题中的“JRE7-32bit”指的是针对32位操作系统的Java运行环境第七个主要版本。JRE 1.7,也就是Java 7,是Oracle公司于2011年发布的,它在Java 6的基础上引入了大量新特性和改进。 1. **JRE的主要组件**:JRE包括...

    java问题详解

    - **跨平台示例**: 在Windows下编写的Java程序,其字节码文件可以直接在Linux、Mac OS等操作系统上运行,只需要在这些操作系统上安装对应的JRE即可。 #### 三、Java编译器与Java虚拟机的关系 - **编译器**: JDK中...

    JDK1.7 X86

    同时,X86 JDK与64位版本相比可能在性能上稍有劣势,但在兼容性方面有其优势,能够运行在那些不支持64位操作系统的计算机上。 安装`jdk-7u80-windows-i586.exe`文件是获取JDK 1.7 X86版本的过程。安装后,系统会...

    最新版windows logstash-8.3.2-windows-x86_64.zip

    在Windows环境下,Logstash 提供了针对64位系统的版本,确保在Windows操作系统上高效运行。 标题中的“最新版windows logstash-8.3.2-windows-x86_64.zip”指的是Logstash的8.3.2版本,这是一个专为Windows 64位...

    android ruby解释器

    JRuby不仅实现了Ruby标准库,还提供了与Java平台的互操作性,使得Android的API可以直接在Ruby代码中调用。 在Android平台上使用Ruby的主要优点包括: 1. **快速开发**:Ruby的简洁语法和强大的库(如Rails框架)...

    jdk-7u3-windows-x64

    【描述】"jdk-7u3-windows-x64 可安装成功" 表示该软件包可以在64位的Windows操作系统上顺利安装,并且能够正常运行。JDK包含Java编译器、Java虚拟机(JVM)、Java类库和其他开发工具,对于任何想要编写、测试或调试...

    jdk-7u17-windows-x64.zip

    JDK 7u17是Java 7的第17个更新版本,针对Windows 64位操作系统。这个版本包含了重要的性能改进、安全修复以及对Java平台的增强。 在Java 7u17中,一些关键的更新和改进包括: 1. **动态语言支持**:JDK 7引入了 ...

    server-jre-7u80-solaris-sparcv9.tar.gz

    标题“server-jre-7u80-solaris-sparcv9.tar.gz”指的是一个针对 Solaris 操作系统,SPARCv9 架构的服务器级 Java 运行环境(Java Runtime Environment,JRE)的压缩包。这个版本是7u80,即 Java 7 Update 80。在IT...

    JDK1.7u80 Windows64位版本

    标题“JDK1.7u80 Windows64位版本”指的是Java Development Kit (JDK) 的第7个主要版本的第80次更新,专为64位的Windows操作系统设计。JDK是Java编程语言的核心工具集,包含了开发和运行Java应用程序所需的编译器、...

    java JDK1.7版本下载

    1. **下载**:访问Oracle官网,找到Java SE Development Kit 7的下载页面,根据操作系统选择合适的版本进行下载。 2. **安装**:执行下载的安装程序,按照向导提示进行操作。通常包括接受许可协议、选择安装路径等...

    Ruby的安装与运行

    1. **操作系统选择**:推荐在**OSX**或**Linux**环境下安装Ruby,因为这两种操作系统对Ruby的支持更佳,且通常包含更多的开发工具。 2. **版本实现**:Ruby有多种实现版本,如**CRuby**(基于C语言)、**JRuby**...

    JDK1.7_64位

    1. **动态类型语言支持**:Java 7引入了JSR 292,即" invokedynamic "指令,它为运行时绑定提供了更高效的支持,使得动态类型语言如Groovy和JRuby在Java平台上运行更为流畅。 2. **多租户应用**:JDK1.7引入了多...

Global site tag (gtag.js) - Google Analytics