¿Hay un equivalente de *features
* de Common Lisp en Clojure, por lo que puede detectar el sistema operativo y otras configuraciones de entorno? ¿O simplemente reviso la API de Java para eso?Detectar sistema operativo en Clojure
14
A
Respuesta
17
Probablemente use la API de Java. Es bastante fácil, no tiene sentido reinventar la rueda.
user> (System/getProperty "os.name")
"Linux"
user> (System/getProperty "os.version")
"2.6.36-ARCH"
user> (System/getProperty "os.arch")
"amd64"
5
Para añadir a la respuesta de Brian Carper, fácilmente se podría crear un mapa de las propiedades del sistema a través de la API de Java y ligarlo al símbolo características:
(def *features* {
:name (System/getProperty "os.name"),
:version (System/getProperty "os.version"),
:arch (System/getProperty "os.arch")})
que le da esta estructura, por ejemplo:
{:name "Windows 7", :version "6.1", :arch "x86"}
luego acceder a una propiedad en cualquiera de las siguientes maneras:
(:name *features*)
(*features* :name)
(get *features* :name)
Cualquiera que sea su flotador.
0
Otras respuestas están manejando bastante bien cómo obtener la información del sistema de Java. Si desea obtener más ayuda interpretarlo, he aquí algunos ejemplos de cómo terracota hizo eso:
Cuestiones relacionadas
- 1. Detectar el sistema operativo
- 2. ¿Cómo detectar el sistema operativo en ejecución?
- 3. ¿Cómo detectar el idioma predeterminado del sistema operativo en python?
- 4. ¿Cómo detectar el sistema operativo en un archivo make?
- 5. ¿Cómo puedo detectar el sistema operativo en Perl?
- 6. ¿Cómo detectar la codificación del sistema operativo en php?
- 7. ¿Cómo detectar el sistema operativo de una aplicación Silverlight?
- 8. Detectar el sistema operativo de la extensión de Firefox
- 9. Detectar la versión exacta del sistema operativo desde el navegador
- 10. cómo detectar el sistema operativo actual de Gradle
- 11. Cómo determinar el sistema operativo
- 12. Sistema operativo de espacio aislado
- 13. jQuery - detectando el sistema operativo y la versión del sistema operativo
- 14. sistema operativo y aplicaciones WPF
- 15. Actualizar sistema operativo Android programáticamente
- 16. Desarrollo de un sistema operativo
- 17. malloc en un sistema integrado sin un sistema operativo
- 18. Pilas NFC en el sistema operativo Android
- 19. Determine el sistema operativo en .vimrc
- 20. Libros de Android en el sistema operativo
- 21. Cómo determinar el sistema operativo en elisp?
- 22. ¿Cómo habilita mod_rewrite en cualquier sistema operativo?
- 23. ¿PHP tiene una función para detectar el sistema operativo en el que se ejecuta?
- 24. ¿Cuál es la forma más fácil de detectar el sistema operativo del usuario en Rails 3?
- 25. Diferencias fundamentales entre el sistema operativo Linux y el sistema operativo móvil (Android)
- 26. Usar ant para detectar el sistema operativo y establecer la propiedad
- 27. Cómo detectar si el sistema operativo Linux usa el entorno KDE o Gnome
- 28. Rubyzip vs compresión de sistema operativo nativo
- 29. Tiempo de compilación del sistema operativo
- 30. Requisitos del sistema operativo para arc4random_uniform()
'System.getProperties' devuelve una tabla hash de Java, por lo que también puede hacer '(into {} (System/getProperties))' para obtener un mapa Clojure de cadenas para cadenas y extraer las propiedades de esa manera. –
@Brian Carper - Agradable, muestra mi falta de uso real de Java. Dicho esto, 'System/getProperties' puede devolver una gran cantidad de información, por lo que hacerlo manualmente podría ayudar a alguien proveniente de Lisp que solo quiere unas pocas propiedades. – semperos