2011-01-24 8 views

答えて

17

おそらくJava APIを使用します。それは十分に簡単で、車輪を再発明する意味はありません。 、あなたにこの構造を与える

(def *features* { 
    :name (System/getProperty "os.name"), 
    :version (System/getProperty "os.version"), 
    :arch (System/getProperty "os.arch")}) 

user> (System/getProperty "os.name") 
"Linux" 
user> (System/getProperty "os.version") 
"2.6.36-ARCH" 
user> (System/getProperty "os.arch") 
"amd64" 
5

は、あなたが簡単に機能をするJava APIを介してシステムのプロパティのマップを作成し、シンボルに結合することができ、ブライアンCarperの答えに追加するには例えば:次に

{:name "Windows 7", :version "6.1", :arch "x86"} 

は、次のいずれかの方法でプロパティにアクセス:

(:name *features*) 
(*features* :name) 
(get *features* :name) 

いずれかのボートを浮かべます。

+3

'System.getProperties'は、JavaのHashtableを返すので、あなた:あなたはそれを解釈するより多くの助けをしたい場合は、ここでのテラコッタがいることをどうやったのかの例をいくつか示します。文字列のClojureマップを文字列に取得し、そのようにプロパティを引き出すために '({{}(System/getProperties))に')を実行することもできます。 –

+0

@Brian Carper - ニースは、実際のJavaの使用が不足していることを示しています。つまり、 'System/getProperties'は大量の情報を返すことができるので、手動で行うことは、Lispから来ている人に、いくつかのプロパティを必要とする人を助けるかもしれません。 – semperos

0

その他の回答は、Javaからシステム情報を取得する方法をかなりうまく処理しています。

関連する問題