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では、libruby1.8i 386-mswin 32ディレクトリで(linuxではx 86_64-linux)rbconfig.rbが見つかりました.JRubyではこのファイルが見つかりません.JRubyのソースコードを見ると、ディレクトリsrcorgjrubylibrariesの下にRbConfigLibrary.javaがあります.コードはJVMのos.nameのPropertyを呼び出して以前のオペレーティングシステムを動的に判断し、CONFIG変数に埋め込まれます.