首頁 > Java > java教程 > 主體

如何使用 exec() 方法修復 Java 輸出重定向失敗?

Linda Hamilton
發布: 2024-10-24 08:10:30
原創
130 人瀏覽過

How to Fix Java Output Redirection Failure Using exec() Method?

Java exec() 方法輸出重新導向失敗

在此問題中,使用者嘗試使用Java 執行時間重新導向shell 腳本的輸出.getRuntime().exec() 方法。但是,重定向失敗,並且未建立指定的輸出檔案。

提供的程式碼片段是:

Process p = Runtime.getRuntime().exec("sh somescript.sh &> out.txt");
登入後複製

通常,此指令應將腳本的輸出重新導向至檔案輸出.txt。但是,在這種情況下,即使直接在 shell 中執行腳本成功運行,輸出也不會重定向。

解決方案:使用 ProcessBuilder 進行重定向

解決方案在於使用 ProcessBuilder 而不是 Runtime.getRuntime().exec()。 ProcessBuilder 提供了對進程創建的更多控制,並允許明確重定向輸入、輸出和錯誤流。

使用 ProcessBuilder 修改後的程式碼如下:

ProcessBuilder builder = new ProcessBuilder("sh", "somescript.sh");
builder.redirectOutput(new File("out.txt"));
builder.redirectError(new File("out.txt"));
Process p = builder.start(); // may throw IOException
登入後複製

在此程式碼中, ProcessBuilder 已建立並配置為將標準輸出和錯誤流重定向到檔案 out.txt。然後使用 start() 方法建立進程,如果出現問題,可能會拋出 IOException。

透過利用 ProcessBuilder,可以明確管理輸出重定向,從而解決問題。

以上是如何使用 exec() 方法修復 Java 輸出重定向失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!