Java 程序中需執行 Linux 命令並獲取輸出,疑慮:命令如何被識別?是否需登錄 Linux 環境?
若 Java 運行在 Linux 主機上,直接用 ProcessBuilder 或 Runtime.exec():
ProcessBuilder pb = new ProcessBuilder("bash", "-c", "your_command");
Process p = pb.start();
// 讀取 p.getInputStream() 獲取輸出
若需在遠程 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 等,更適合生產環境。