Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用java程序执行shell命令时维护会话_Java - Fatal编程技术网

在使用java程序执行shell命令时维护会话

在使用java程序执行shell命令时维护会话,java,Java,我们正在研究从JavaSwingUI执行shell命令的需求 我们需要执行一个命令来启动会话,一旦会话启动,我们需要重复执行一些常用命令 我们可以使用下面的命令执行这些命令 Runtime.getRuntime().exec("setSession") Runtime.getRuntime().exec("execute individual task"); 这样,每次我们都必须设置会话并执行单个任务 有没有办法执行一次命令(如setSession)并保留会话以执行其余的命令?如果我正确完成了

我们正在研究从JavaSwingUI执行shell命令的需求

我们需要执行一个命令来启动会话,一旦会话启动,我们需要重复执行一些常用命令

我们可以使用下面的命令执行这些命令

Runtime.getRuntime().exec("setSession")
Runtime.getRuntime().exec("execute individual task");
这样,每次我们都必须设置会话并执行单个任务


有没有办法执行一次命令(如setSession)并保留会话以执行其余的命令?

如果我正确完成了任务,您可能需要在底层系统上启动一个shell,获取其输入和输出流,并在那里发出命令。 尽管这会使您依赖于操作系统。但无论如何,您执行的命令可能是。 比如:

Process p = Runtime.getRuntime().exec("cmd.exe");
OutputStream outputStream = p.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream));

InputStream inputStream = p.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

writer.write("dir \n");
writer.flush();

为什么不将所有单个任务组合在一个shell脚本下,然后只启动那个脚本呢?我们可以这样做,但它必须从一开始就为每个任务执行。我想将setSession保持为所有单个任务的公共设置。