Devo fare un programma che stamperà le impostazioni di rete usando "ipconfig" per Windows e "ifconfig" per Linux, ma ho bisogno di farlo con un unico implementazione per entrambi i sistemi operativi.Come può un programma java decidere quale comando eseguire a seconda di os
5
A
risposta
9
è possibile ottenere il nome del sistema operativo attraverso
System.getProperty("os.name")
Dai un'occhiata alla this page per alcuni esempi di codice.
Se è per caso l'IP dell'host locale che ti interessa, ci sono modi per ottenere questo direttamente in Java:
Non c'è modo di determinare quale sia il comando "mostra informazioni ip" f o un sistema operativo arbitrario. Dovrai codificare manualmente qual è il comando (se lo è) per ciascun nome del sistema operativo manualmente.
3
Sulla 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
Per riferimento, ecco una concreta example che imposta una proprietà solo per un particolare sistema operativo:
if (System.getProperty("os.name").startsWith("Mac OS X")) {
System.setProperty("apple.awt.graphics.UseQuartz", "true");
}
5
Come complemento alle altre risposte, io menzionare SystemUtils
da Commons Lang che espone varie costanti come IS_OS_UNIX
, IS_OS_WINDOWS
, ecc.
Problemi correlati
- 1. come eseguire un comando al terminale dal programma java?
- 2. Come eseguire il comando sudo per OS X in java
- 3. Come posso eseguire un programma Java nell'editor di Atom?
- 4. eseguire un programma Java dal nostro programma Java
- 5. Come decidere quale tipo di immagine BufferedImage usare?
- 6. Come arrestare correttamente un programma da riga di comando java
- 7. di Ruby può essere vuoto sulle finestre a seconda di un modo per eseguire lo script
- 8. java può eseguire un codice scala compilato?
- 9. Un programma resistente a cadute di tensione/hardware/OS
- 10. Possiamo eseguire un programma java senza un metodo main()?
- 11. Eseguire un comando di Linux nel programma c
- 12. Come elenco a livello di programma quale ruolo ASP.Net può accedere a una pagina?
- 13. Utilizzo di * nella riga di comando in un programma Java
- 14. Come avere dipendenze diverse a seconda della famiglia OS
- 15. Come eseguire un programma C su Ubuntu?
- 16. Come eseguire un .class Java dalla riga di comando
- 17. In GDB, come faccio a eseguire un comando automaticamente quando il programma si ferma? (come display)
- 18. Quale programma può aiutare a ricordare una shell REPL e la cronologia delle ricerche?
- 19. Come eseguire un semplice programma Java in Eclipse?
- 20. Può eseguire istruzioni commandline sulla riga di comando?
- 21. come compilare ed eseguire il programma java in un altro programma java?
- 22. Come eseguire un programma Hadoop?
- 23. Come decidere quale valore root utilizzare per le mutazioni GraphQL
- 24. Come eseguire un altro programma python senza ostacolare l'originale?
- 25. Esecuzione di un programma java da un altro programma java
- 26. Come eseguire un testcase esterno (Class, junit) nel programma java?
- 27. Come si scrive un programma per Mac OS X?
- 28. quale algoritmo per un programma di programmazione
- 29. Esempi reali per decidere quale algoritmo di ordinamento funziona meglio
- 30. Come eseguire un programma in Atom Editor?
Grazie. Lo so, ma ho bisogno di sapere come fare in modo che il programma decida quale processo eseguire in fase di esecuzione a seconda dell'OS – jboy
"Mac OS X" per me! –
@Tony Ennis: quindi * "ifconfig" * funzionerà bene ... (C'è anche un ipconfig su OS X, ma quello è diverso). Oltre a ciò, OS X * ifconfig * è praticamente * ifconfig * di Linux. – SyntaxT3rr0r