在Clojure中检测操作系统

时间:2011-01-24 18:58:40

标签: configuration clojure

在Clojure中是否有相当于Common Lisp的*features *,因此您可以检测操作系统和其他环境配置?或者我只是通过Java API?

3 个答案:

答案 0 :(得分:18)

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

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

答案 1 :(得分:5)

要添加Brian Carper的答案,您可以通过Java API轻松创建系统属性的地图,并将其绑定到符号 features

(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)

无论哪个漂浮在你的船上。

答案 2 :(得分:0)

其他答案正在处理如何从Java中获取系统信息。如果您需要更多帮助来解释它,以下是Terracotta如何做到这一点的一些例子: