Czy w Clojure istnieje odpowiednik pliku Common Lisp o nazwie *features
*, aby można było wykryć system operacyjny i inną konfigurację środowiska? Czy mogę po prostu przejść do tego API Java?Wykryj system operacyjny w Clojure
14
A
Odpowiedz
17
Prawdopodobnie używa Java API. To dość łatwe, nie ma sensu ponownie wymyślać koła.
user> (System/getProperty "os.name")
"Linux"
user> (System/getProperty "os.version")
"2.6.36-ARCH"
user> (System/getProperty "os.arch")
"amd64"
5
Aby dodać odpowiedź Brian krytyk jest, można łatwo stworzyć mapę właściwości systemu za pośrednictwem interfejsu API Javy i powiązać go z symbolem możliwości:
(def *features* {
:name (System/getProperty "os.name"),
:version (System/getProperty "os.version"),
:arch (System/getProperty "os.arch")})
co daje tę strukturę, na przykład:
{:name "Windows 7", :version "6.1", :arch "x86"}
Wtedy dostęp do właściwości któregokolwiek z następujących sposobów:
(:name *features*)
(*features* :name)
(get *features* :name)
To, co płynie z łodzi.
0
Inne odpowiedzi dotyczą radzenia sobie z uzyskiwaniem informacji systemowych z języka Java. Jeśli chcesz więcej pomocy interpretowania go, oto kilka przykładów, jak to zrobił z terakoty:
Powiązane problemy
- 1. Wykryj system operacyjny
- 2. Wykryj system operacyjny z rozszerzenia przeglądarki Firefox
- 3. System operacyjny z piaskownicą
- 4. .emacs kod identyfikujący system operacyjny?
- 5. Jak wykrywać działający system operacyjny?
- 6. Zaktualizuj system operacyjny Android programowo
- 7. Jak wykryć system operacyjny Windows w ANT
- 8. Jak wykryć system operacyjny z aplikacji silverlight?
- 9. Jak dokładnie system operacyjny chroni jądro
- 10. Jak bezpieczny jest system operacyjny 5.1?
- 11. Jak aplikacja może zamrozić system operacyjny Android?
- 12. Jaki jest najprostszy dostępny system operacyjny?
- 13. Jak stworzyć wyjątkowo prosty system operacyjny?
- 14. Najlepszy system operacyjny dla rozwoju java?
- 15. jaki system operacyjny obsługuje samsung smart TV?
- 16. Pobierz bieżący system operacyjny Adobe AIR
- 17. Jak wykryć aktualny system operacyjny z Gradle
- 18. Clojure: * out * vs System/out
- 19. W jaki sposób BIOS jest używany przez nowoczesny system operacyjny?
- 20. Jak ustalić, czy system operacyjny to POSIX w C?
- 21. Identyfikacja Jeśli system operacyjny jest (otwarty) SUSE w języku Python?
- 22. W jaki sposób system operacyjny rozpoznaje koniec pliku tekstowego?
- 23. Jak sprawdzić, czy system operacyjny to Vista w języku Python?
- 24. Izolacja kontenera dokera, czy dba o podstawowy system operacyjny Linux?
- 25. Jak określić system operacyjny hosta podczas kompilacji krzyżowej z CMake?
- 26. Apache: jak ukryć wersję serwera i system operacyjny przed użytkownikami?
- 27. Jak uzyskać nazwę dysku, na którym jest zainstalowany system operacyjny?
- 28. Plik wsadowy: Sprawdź, czy system operacyjny to Windows 10
- 29. Jak poznać aktualny system operacyjny/platformę kodu wykonawczego (Android/iOS)?
- 30. System operacyjny zaczyna zabijać procesy, gdy działa wielowątkowy proces python
'System.getProperties' zwraca Java Hashtable, więc może również zrobić '(do {} (System/getProperties))', aby uzyskać Clojure mapę łańcuchów na ciągi i wyciągnąć właściwości w ten sposób. –
@ Brian Carper - Nice, pokazuje mój brak prawdziwego użycia Java. To powiedziawszy, 'System/getProperties' może zwrócić dużą ilość informacji, więc zrobienie tego ręcznie może pomóc komuś z Lisp, który chce mieć kilka właściwości. – semperos