java di per sé include una vasta collezione di classi con le principali funzionalità di cui potremo aver bisogno, se non lo offri Nell’aPI è molto possibile che ci sia una biblioteca che lo fornisce. Ma qualche volta forse ci viene dato il caso che un comando di comando restituisca le informazioni o esegue l’azione di cui abbiamo bisogno. Può essere un comando del sistema GNU / Linux, Windows o Mac OS X o uno script in Java, Python, Ruby o altro linguaggio di programmazione. Attraverso il processo e la classe ProcessBuilder è possibile per noi avviare un processo di qualsiasi comando di comando e accedere al suo ingresso standard, all’output standard e all’output standard.
La classe di processo rappresenta il processo che avremo lanciato, ne avremo due Modi per ottenere un riferimento a questa classe, uno con runtime.getinstance (). Exec () e un altro con la classe ProcessBuilder con entrambi sarà possibile stabilire variabili di ambiente, la directory di lavoro o reindirizzare la voce e l’uscita. RIFERIMENTO Ottenuto a un’istanza di processo con il metodo GetInputStream () Leggeremo l’output standard del processo, con GetErRoRinputStream () l’uscita dell’errore e con GepiutputStream () possiamo inviare contenuti all’ingresso standard. Altri metodi di utilità ci consentiranno di sapere se il processo è ancora vivo con ISALIVE (), ottenere il codice di uscita con EXITVALUE (), attendere che finisca con Waitfor (). Alla fine con Destroy () possiamo finire bruscamente il processo.
Non provengono dalla notevole notizia di Java 8 ma da questa versione è possibile impostare un attesa massima per la cessazione del processo, le variabili di ambiente e La directory di lavoro. E più piccoli cambiamenti ma molto utili come questi saranno stati aggiunti ad altre classi dell’API.
È possibile fare qualsiasi cosa che il sistema possa fare in base ai comandi installati o possono essere installati e Questo significa che è a portata di mano di Java in un sistema GNU / Linux il potere della tua riga di comando. Ad esempio, supponiamo di voler sapere in un programma Java il tempo che è stato avviato un sistema che sarebbe utile se vogliamo implementare un tipo di metrica di monitoraggio con l’attuatore di avvio a molla. Java non ha un metodo che fornisce queste informazioni nella tua API, tuttavia, in GNU / Linux possiamo conoscere questi dati utilizzando il file system virtuale accessibile in / proc, specificamente nel file / proc / uttime. Questo file contiene due numeri il primo è quello che ci interesserebbe essendo il numero di secondi dal momento che il sistema è iniziato e il secondo il tempo è rimasto a riposo. Il secondo numero in un sistema con un processore con diversi nuclei fisici o logici è probabile che sia più alto del primo.
|
|
Questo sarebbe il programma Java per sapere quanto è stato avviato un sistema GNU / Linux. Innanzitutto, il processo è stato creato, si prevede che finisca e il suo codice di uscita è ottenuto, viene ottenuta l’uscita del processo (input per il programma), il risultato viene elaborato e il secondo che il sistema è iniziato.
|
|
maain.java
|
|
Main.out
Eseguire un comando di comando ci dà accesso a un nuovo mondo di possibilità anche se se possiamo meglio avere un’API disponibile per invocare la funzionalità che desideriamo invece di una lettura di integrazione più fragile e scrittura all’uscita, all’errore e all’ingresso del processo . Nel seguente articolo basato su è questo commenterò come inviare un’e-mail in Java firmata digitalmente con GPG, applicando lo stesso, possiamo ottenere il paese e la città in base all’indirizzo IP in un’applicazione Web.
Il codice sorgente Full Source è in grado di scaricarlo dal repository Blog Blog ospitato in GitHub e testarlo sul computer in esecuzione il comando successivo: <"A5195F0606">