在Clojure中是否有相当于Common Lisp的*features
*,因此您可以检测操作系统和其他环境配置?或者我只是通过Java API?
答案 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如何做到这一点的一些例子: