CodeGym
AI Academy
Promozione
CodeGym University
Learning
Corsi
Tasks
Surveys & Quizzes
Games
Help
Schedule
Community
Users
Forum
Chat
Articles
Success stories
Activity
Reviews
Subscriptions
Tema chiaro

Lezioni

  • Recensioni
  • Chi siamo
Inizia
Inizia a imparare
Start learning now
  • I miei progressi
  • Corsi
  • Mappa Quest
  • Lezioni
  • ProcessBuilder — avvio di processi esterni

    JAVA 25 SELF
    Livello 61,Lezione 0
    Vediamo come avviare da Java comandi e utility esterni con la classe ProcessBuilder: perché è migliore di Runtime. getRuntime(). exec(), come configurare la directory di lavoro tramite directory(), le variabili d'ambiente tramite environment(), e come gestire il processo tramite start(), waitFor(), i flussi getInputStream()/ getErrorStream()/ getOutputStream(). Discuteremo la portabilità tra piattaforme ( cmd.exe/ ls), il lavoro con stdout/ stderr e gli errori tipici.
    Disponibile
  • Lettura dell'output del processo, lavoro con stdin/stdout

    JAVA 25 SELF
    Livello 61,Lezione 1
    Pratica con i processi esterni in Java: come leggere stdout tramite Process.getInputStream(), intercettare gli errori da stderr tramite Process.getErrorStream(), scrivere su stdin con Process.getOutputStream(), e usare anche i pratici metodi inputReader()/ errorReader()/ outputWriter(). Vedremo le particolarità di comandi come java -version, la lettura parallela dei flussi per evitare il deadlock, la gestione delle codifiche ( "UTF-8") e un piccolo bridge con script Python.
    Disponibile
  • Gestione del ciclo di vita di un processo

    JAVA 25 SELF
    Livello 61,Lezione 2
    Pratica di gestione dei processi esterni da Java: attendiamo la terminazione con waitFor() (inclusi i timeout), leggiamo il codice di uscita, arrestiamo correttamente con destroy()/ destroyForcibly(), preveniamo blocchi e processi «zombie», senza dimenticare i flussi di output e le eccezioni. Analizziamo gli aspetti multipiattaforma e gli errori tipici.
    Disponibile
  • Interazione con i processi in modo interattivo

    JAVA 25 SELF
    Livello 61,Lezione 3
    In questa lezione vedremo come, da Java, organizzare un dialogo “in tempo reale” con programmi esterni: scrivere su stdin, leggere da stdout e stderr, evitare blocchi reciproci ( deadlock), elaborare in parallelo l'output con ExecutorService, chiudere correttamente i flussi e gestire il ciclo di vita di Process tramite ProcessBuilder. Vedremo esempi con uno script interattivo in Python e l'utility bc, e analizzeremo anche le insidie del buffering e la necessità di flush().
    Disponibile
  • Analisi degli errori tipici nella gestione dei processi

    JAVA 25 SELF
    Livello 61,Lezione 4
    Guida pratica per lavorare in modo robusto con processi esterni in Java: come evitare blocchi dovuti a stream stdout/ stderr non letti, configurare correttamente le codifiche di output (ad esempio, UTF-8, CP866), tenere conto delle differenze cross‑platform dei comandi ( ls vs dir), gestire i permessi e i codici di uscita tramite process.exitValue(), chiudere le risorse senza perdite ed evitare deadlock nell’interazione interattiva. Esaminiamo l’uso corretto di ProcessBuilder, la lettura parallela degli stream (thread/ ExecutorService), la terminazione corretta tramite process.destroy(), nonché percorsi portabili con File.separator.
    Disponibile
Learn
  • Registration
  • Java Course
  • Help with Tasks
  • Pricing
  • Java Syntax
Community
  • Users
  • Articles
  • Forum
  • Chat
  • Success Stories
  • Activity
  • Affiliate Program
Company
  • About us
  • Contacts
  • Reviews
  • Press Room
  • CodeGym for EDU
  • FAQ
  • Support
CodeGymCodeGym is an online course for learning Java programming from scratch. This course is a perfect way to master Java for beginners. It contains 1200+ tasks with instant verification and an essential scope of Java fundamentals theory. To help you succeed in education, we’ve implemented a set of motivational features: quizzes, coding projects, content about efficient learning, and a Java developer’s career.
Follow us
Lingua dell'interfaccia
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ்
Italiano
Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Programmers Are Made, Not Born" © 2026 CodeGym
MastercardVisa
"Programmers Are Made, Not Born" © 2026 CodeGym