浏览 926 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-01-31
记得前面有人问过这个问题,但是没有搜索到。我原来判断ruby究竟是运行在Windows上面还是Linux上面的办法比较土:
def win32? require 'Win32API' return true rescue LoadError return false end 让ruby尝试加载Wind32API,如果成功就是Windows,否则就是Unix类操作系统。今天发现一个更好的办法: def windows? !(RUBY_PLATFORM =~ /win32/).nil? end 原来可以从环境变量RUBY_PLATFORM当中获得操作系统信息,比方说Windows上面是i386-mswin32,而我们的服务器上面是x86_64-linux,你打印一下就知道了: ruby -e "puts RUBY_PLATFORM" 作为一个小的编程技巧分享给大家。 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-01-31
对,还可以用这个方法判断是否运行在JRuby环境下。
JRuby环境下RUBY_PLATFORM的值是“java”,Windows和Linux上都一样。以前我用这个方法确定是使用ActiveRecord native的数据库driver还是使用ActiveRecord-JDBC。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-01-31
这个貌似只是给出你的ruby解释器所运行的平台,而不是操作系统..比如"i386-cygwin "
ruby way中,给了一个比较完全的程序,不过这边的ming不懂是那个操作系统: def os_family
case RUBY_PLATFORM
when /ix/i, /ux/i, /gnu/i,
/sysv/i, /solaris/i,
/sunos/i, /bsd/i
"unix"
when /win/i, /ming/i
"windows"
else
"other"
end
end
|
|
| 返回顶楼 | |
|
最后更新时间:2008-01-31
simohayha 写道 这个貌似只是给出你的ruby解释器所运行的平台,而不是操作系统..比如"i386-cygwin "
ruby way中,给了一个比较完全的程序,不过这边的ming不懂是那个操作系统: def os_family
case RUBY_PLATFORM
when /ix/i, /ux/i, /gnu/i,
/sysv/i, /solaris/i,
/sunos/i, /bsd/i
"unix"
when /win/i, /ming/i
"windows"
else
"other"
end
end
mingw? |
|
| 返回顶楼 | |
|
最后更新时间:2008-01-31
谢谢楼主!! 谢谢上面各层楼的朋友!!
终于知道怎么做了!! 谢谢大家! |
|
| 返回顶楼 | |











