CodeGym
AI Academy
促銷
CodeGym University
學習
課程
任務
問卷 & 測驗
遊戲
說明
行程
社群
用戶
論壇
聊天
文章
成功故事
動態
評價
訂閱
淺色主題

課程

  • 評論
  • 關於我們
開始
開始學習
立即開始學習
  • My Progress
  • Courses
  • 任務地圖
  • 課程
  • ProcessBuilder — 啟動外部行程

    JAVA 25 SELF
    等級 61,課程 0
    說明如何在 Java 中使用類別 ProcessBuilder 來啟動外部指令與工具:它相較於 Runtime. getRuntime(). exec() 有何優勢,如何透過 directory() 設定工作目錄、透過 environment() 設定環境變數,以及如何透過 start()、 waitFor() 與串流 getInputStream()/ getErrorStream()/ getOutputStream() 來管理行程。也會討論跨平台性( cmd.exe/ ls)、如何處理 stdout/ stderr,以及常見錯誤。
    可用
  • 讀取行程輸出,操作 stdin/stdout

    JAVA 25 SELF
    等級 61,課程 1
    在 Java 中操作外部行程的實務:如何透過 stdout 搭配 Process.getInputStream() 來讀取、透過 stderr 與 Process.getErrorStream() 來接收錯誤、使用 stdin 與 Process.getOutputStream() 來寫入資料,以及使用更方便的 inputReader()/ errorReader()/ outputWriter() 方法。會說明像 java -version 這類指令的特性、為避免 deadlock 而並行讀取串流、處理編碼(例如 "UTF-8"),以及與 Python 指令碼的小型橋接。
    可用
  • 行程生命週期管理

    JAVA 25 SELF
    等級 61,課程 2
    在 Java 中管理外部行程的實務:透過 waitFor() 等待結束(包含逾時),讀取結束碼,使用 destroy()/ destroyForcibly() 正確停止,避免卡死與「殭屍」行程,別忘了處理輸出串流與例外。我們也會說明跨平台細節與常見錯誤。
    可用
  • 與行程的互動式溝通

    JAVA 25 SELF
    等級 61,課程 3
    在本講座中,我們將說明如何在 Java 中與外部程式建立「互動式」對話:寫入 stdin、從 stdout 與 stderr 讀取、避免互相阻塞( deadlock)、使用 ExecutorService 並行處理輸出、正確關閉串流,並透過 ProcessBuilder 管理 Process 的生命週期。會看看使用 Python 互動腳本與 bc 工具的範例,並討論緩衝的坑與為何需要 flush()。
    可用
  • 處理行程時的常見錯誤解析

    JAVA 25 SELF
    等級 61,課程 4
    在 Java 中與外部行程穩定互動的實用指南:如何避免因未讀取的串流 stdout/ stderr 而卡死,正確設定輸出編碼(例如 UTF-8、 CP866),考量不同平台的指令差異( ls vs dir),透過 process.exitValue() 處理存取權與結束代碼,關閉資源避免洩漏並避免互動式的相互鎖死。涵蓋對 ProcessBuilder 的正確使用、以執行緒/ ExecutorService 並行讀取串流、透過 process.destroy() 正確結束,以及使用 File.separator 的跨平台路徑。
    可用
學習
  • 註冊
  • Java 課程
  • 題目協助
  • 價格
  • Java 語法
社群
  • 用戶
  • 文章
  • 論壇
  • 聊天
  • 成功故事
  • 動態
  • 聯盟計畫
公司
  • 關於我們
  • 聯絡方式
  • 評價
  • 新聞中心
  • CodeGym for EDU
  • 常見問題
  • 支援
CodeGymCodeGym 是一門從零開始學習 Java 程式設計的線上課程。這門課程是初學者精通 Java 的完美方式。它包含超過 1200 題、具即時檢驗功能,以及涵蓋 Java 基礎理論的必要範圍。為了幫助你在學習上成功,我們實作了一系列激勵功能:測驗、程式專案、關於有效學習的內容,以及 Java 開發者職涯相關內容。
追蹤我們
介面語言
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
"程式設計師是培養出來的,不是天生的" © 2026 CodeGym
MastercardVisa
"程式設計師是培養出來的,不是天生的" © 2026 CodeGym