2011-01-24 123 views

回答

17

可能使用Java API。这很容易,没有意义重新发明轮子。

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

为了增加布赖恩·卡珀的回答,您可以轻松地通过Java API创建地图的系统性能,并将其绑定到符号功能

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

,让你这个结构,例如:

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

然后通过以下任何一种方式访问​​属性:

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

无论哪一条漂浮在您的船上。

+3

`System.getProperties`返回一个Java哈希表,所以你也可以做`(到{}(System/getProperties))`来获得一个字符串的Clojure映射到字符串并且以这种方式拉出属性。 – 2011-01-24 21:11:06

0

其他答案正在处理如何从Java很好地获取系统信息。如果你想要更多的帮助解释它,这里是兵马俑是怎么做的一些例子: