Tengo que hacer un programa que imprima la configuración de red usando "ipconfig" para Windows y "ifconfig" para Linux, pero necesito hacer eso con un único implementación para ambos sistemas operativos.¿Cómo puede un programa java decidir qué comando ejecutar según os
5
A
Respuesta
9
Usted puede obtener el nombre del sistema operativo a través de
System.getProperty("os.name")
Tenga una mirada en this page de un código de ejemplo.
Si es por casualidad la IP de la máquina local que le interesa, hay maneras de conseguir esto directamente en Java:
No hay forma de determinar qué es el comando "mostrar información del IP" o un sistema operativo arbitrario. Deberá codificar de forma manual el comando (si es uno) para cada nombre de sistema operativo.
3
Basándose en aioobe's solution:
final String osname = System.getProperty("os.name").toLowerCase();
String processName;
if(osname.startsWith("win"))
processName="ipconfig /some /parameter";
else
processName="ifconfig -some -parameter";
Runtime.getRuntime().exec(processName);
3
Como referencia, he aquí una concreta example que establece una propiedad sólo para un sistema operativo en particular:
if (System.getProperty("os.name").startsWith("Mac OS X")) {
System.setProperty("apple.awt.graphics.UseQuartz", "true");
}
5
Como complemento a las otras respuestas, me quedo mencionar SystemUtils
de Commons Lang que expone varias constantes como IS_OS_UNIX
, IS_OS_WINDOWS
, etc.
Cuestiones relacionadas
- 1. ¿Cómo ejecutar un programa Java desde C#?
- 2. Ejecutar un programa Java de nuestro programa Java
- 3. Hacer un comando de "macro" para ejecutar un programa
- 4. Java ejecutar el programa de línea de comando
- 5. ¿Puede Java ejecutar un código scala compilado?
- 6. Ejecutar programa externo desde Java
- 7. Ejecutar archivo .jar desde un programa Java
- 8. ¿Cómo puedo ejecutar un comando de línea de comando desde un programa en C++
- 9. ¿Cómo ejecutar un programa Java en un servidor?
- 10. Ejecutar un comando Linux en el programa c
- 11. ¿Cómo ejecutar un programa C en Ubuntu?
- 12. Cómo ejecutar un programa Java simple en Eclipse?
- 13. no se puede ejecutar swing desde la línea de comando
- 14. Cómo ejecutar el programa Java en el símbolo del sistema
- 15. ¿Por qué mi programa Java pierde memoria cuando llamo a ejecutar() en un objeto Thread?
- 16. ¡No se puede ejecutar el comando Roo!
- 17. ¿Puede nginx ejecutar un comando de Unix basado en url?
- 18. ¿Cómo ejecutar el programa Java y obtener resultados en PHP?
- 19. ¿Cómo ejecutar un programa externo desde Node.js?
- 20. ¿Cómo ejecutar un programa de Hadoop?
- 21. cómo compilar y ejecutar el programa java en otro programa java?
- 22. Cómo ejecutar un comando de shell a través de Python
- 23. ¿Cómo ejecutar un comando sin sudo?
- 24. NoClassDefFoundError al ejecutar un programa usando AWS SDK para java
- 25. Crear un script de shell para ejecutar el programa Java
- 26. ¿Cómo encontrar el tiempo necesario para ejecutar el programa Java?
- 27. cómo tener Comando-W cierra una ventana en Mac OS en Java o Clojure
- 28. Uso de Java ProcessBuilder para ejecutar un comando Hilo
- 29. ¿Puede averiguar qué compilador se utilizó para compilar un programa?
- 30. ¿Cómo ejecutar testcase externo (Class, junit) en el programa java?
Gracias. Lo sé, pero necesito saber cómo hacer que el programa decida qué proceso ejecutar en tiempo de ejecución según OS – jboy
"Mac OS X" para mí. –
@Tony Ennis: entonces * "ifconfig" * funcionará bien ... (También hay una ipconfig en OS X, pero esa es diferente). Además de eso, el * ifconfig * de OS X es bastante * ifconfig * de Linux. – SyntaxT3rr0r