首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 調用 Linux 命令獲取返回值:ProcessBuilder 與 JSch 方案

     編輯:程式設計疑難解答

問題

Java 程序中需執行 Linux 命令並獲取輸出,疑慮:命令如何被識別?是否需登錄 Linux 環境?

方案對比

1. 本地執行

若 Java 運行在 Linux 主機上,直接用 ProcessBuilder 或 Runtime.exec():

ProcessBuilder pb = new ProcessBuilder("bash", "-c", "your_command");
Process p = pb.start();
// 讀取 p.getInputStream() 獲取輸出

2. 遠程執行

若需在遠程 Linux 執行,推薦使用 JSch 庫(SSH2 協議):

JSch jsch = new JSch();
Session session = jsch.getSession("user", "host", 22);
session.setPassword("pass");
session.connect();
ChannelExec channel = (ChannelExec) session.openChannel("exec");
channel.setCommand("your_command");
channel.connect();
InputStream in = channel.getInputStream();
// 讀取輸出...

JSch 支持密鑰認證、SFTP 等,更適合生產環境。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved