最近在写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变量中。
分享到:
相关推荐
1. **跨平台部署**:依赖于 JVM,保证了在不同操作系统上的兼容性。 2. **丰富的组件选择**:利用 Swing 提供的各种 UI 组件,支持复杂交互。 3. **可视化编辑**:可以配合图形化 UI 布局编辑器,如 NetBeans 或 ...
JRuby 允许开发者在 Java 平台上运行 Ruby 代码,同时利用 Java 生态系统的强大功能。JRuby 核心库包含了解释器、编译器、垃圾回收以及与其他 Java 类库交互的接口。 描述中提到的 "sbuild-https-plugin.zip" 是一...
JRuby的出现使得Ruby开发者能够无缝集成Java生态系统,包括大量的开源库和企业级应用。在本例中,JRuby被用来读取Excel文件,这是因为它可以调用Java的API,如Apache POI或JExcelApi,这些API专门用于处理Microsoft ...
1. **JRuby**: JRuby是Ruby编程语言的一个实现,它运行在Java平台上。通过JRuby,Java开发者可以利用Ruby的简洁语法和强大的元编程能力,同时保持与Java生态系统(如Maven)的兼容性。 2. **Maven插件**:Maven是一...
您的操作系统可能在程序包管理器中提供了JRE和JRuby,但是您可能会发现此版本非常旧。 一种替代方法是使用。 对于您将需要插件。 您可能会发现系统软件包管理器可以提供这些。 要查看可用的JRuby版本,请运行: $ ...
JRuby允许Ruby代码与Java平台无缝集成,因此这个客户端能够利用Java的HDFS API来操作HDFS。 HDFS是Apache Hadoop项目的核心组件之一,它是一个高度可扩展的、容错性强的分布式文件系统,特别适合处理和存储大量数据...
Get操作用于获取单行数据,而Scan则可以用来批量扫描表中的多行数据。 在使用HBase进行查询时,我们还需要关注性能优化。例如,通过合理设置RowKey,可以提高查询效率;利用Bloom Filter减少不必要的磁盘I/O;以及...
然而,Java的复杂性,如C++风格的指针操作和内存管理,可能会带来学习曲线陡峭和潜在的代码错误问题。这些问题增加了采用Java的风险,尤其是在对性能要求严格的环境中。 相反,Ruby语言,特别是与Rails框架结合,因...
标题中的“JRE7-32bit”指的是针对32位操作系统的Java运行环境第七个主要版本。JRE 1.7,也就是Java 7,是Oracle公司于2011年发布的,它在Java 6的基础上引入了大量新特性和改进。 1. **JRE的主要组件**:JRE包括...
同时,X86 JDK与64位版本相比可能在性能上稍有劣势,但在兼容性方面有其优势,能够运行在那些不支持64位操作系统的计算机上。 安装`jdk-7u80-windows-i586.exe`文件是获取JDK 1.7 X86版本的过程。安装后,系统会...
在Windows环境下,Logstash 提供了针对64位系统的版本,确保在Windows操作系统上高效运行。 标题中的“最新版windows logstash-8.3.2-windows-x86_64.zip”指的是Logstash的8.3.2版本,这是一个专为Windows 64位...
JRuby不仅实现了Ruby标准库,还提供了与Java平台的互操作性,使得Android的API可以直接在Ruby代码中调用。 在Android平台上使用Ruby的主要优点包括: 1. **快速开发**:Ruby的简洁语法和强大的库(如Rails框架)...
【描述】"jdk-7u3-windows-x64 可安装成功" 表示该软件包可以在64位的Windows操作系统上顺利安装,并且能够正常运行。JDK包含Java编译器、Java虚拟机(JVM)、Java类库和其他开发工具,对于任何想要编写、测试或调试...
JDK 7u17是Java 7的第17个更新版本,针对Windows 64位操作系统。这个版本包含了重要的性能改进、安全修复以及对Java平台的增强。 在Java 7u17中,一些关键的更新和改进包括: 1. **动态语言支持**:JDK 7引入了 ...
标题“server-jre-7u80-solaris-sparcv9.tar.gz”指的是一个针对 Solaris 操作系统,SPARCv9 架构的服务器级 Java 运行环境(Java Runtime Environment,JRE)的压缩包。这个版本是7u80,即 Java 7 Update 80。在IT...
标题“JDK1.7u80 Windows64位版本”指的是Java Development Kit (JDK) 的第7个主要版本的第80次更新,专为64位的Windows操作系统设计。JDK是Java编程语言的核心工具集,包含了开发和运行Java应用程序所需的编译器、...
1. **下载**:访问Oracle官网,找到Java SE Development Kit 7的下载页面,根据操作系统选择合适的版本进行下载。 2. **安装**:执行下载的安装程序,按照向导提示进行操作。通常包括接受许可协议、选择安装路径等...
1. **操作系统选择**:推荐在**OSX**或**Linux**环境下安装Ruby,因为这两种操作系统对Ruby的支持更佳,且通常包含更多的开发工具。 2. **版本实现**:Ruby有多种实现版本,如**CRuby**(基于C语言)、**JRuby**...
1. **动态类型语言支持**:Java 7引入了JSR 292,即" invokedynamic "指令,它为运行时绑定提供了更高效的支持,使得动态类型语言如Groovy和JRuby在Java平台上运行更为流畅。 2. **多租户应用**:JDK1.7引入了多...