如何从Java打开Linux终端并能够在其中执行命令



我想编写一个程序,该程序通过SSH连接到远程机器并安装预定义的软件。另外,我想通过使用户可见所有可见的用户清晰安装过程。我遇到了一些问题:如何从Java打开终端并将命令发送给它?(OutputStream不起作用)当我已经SSH时,如何在此终端中执行命令?我想在远程计算机上运行本地脚本并允许用户?要与终端进行交互,请在脚本运行时(例如接受软件许可等)。

我正在尝试这样的事情,但它行不通。

    Runtime runtime = Runtime.getRuntime();
    Process process = runtime.exec("x-terminal-emulator -e ./script.sh");

从理论上讲是可能的。您需要一个Java库,例如JSCH,可以通过SSH直接与终端进行交互,然后使用screen实用程序在您的Java Prog和用户之间共享一个终端屏幕。

来自您的Java Prog:

screen -d -m -S shared
screen -rx shared
<type your installation commands>

来自远程用户:

screen -rx shared

当然,远程用户必须等到Java Prog初始化屏幕才能附加到它。

请注意,当您让用户与屏幕交互时,各种事情都会出错。您的程序必须足够聪明才能处理。

相关内容

  • 没有找到相关文章

最新更新