Ответ 1
Возможно использование Java API. Это достаточно легко, без смысла изобретать колесо.
user> (System/getProperty "os.name")
"Linux"
user> (System/getProperty "os.version")
"2.6.36-ARCH"
user> (System/getProperty "os.arch")
"amd64"
Существует ли эквивалент Common Lisp *features
* в Clojure, так что вы можете обнаружить ОС и другую конфигурацию среды? Или я просто просматриваю Java API для этого?
Возможно использование Java API. Это достаточно легко, без смысла изобретать колесо.
user> (System/getProperty "os.name")
"Linux"
user> (System/getProperty "os.version")
"2.6.36-ARCH"
user> (System/getProperty "os.arch")
"amd64"
Чтобы добавить ответ Брайана Карпера, вы можете легко создать карту свойств системы через API Java и привязать ее к символьным функциям:
(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)
Какой бы ни плавает ваша лодка.
Другие ответы касаются того, как получить системную информацию из Java довольно хорошо. Если вам нужна дополнительная помощь в его интерпретации, вот несколько примеров того, как Terracotta это сделала: