java如何从Jython执行交互式shell?
我需要一些示例Jython或Java代码来执行交互式OS shell(/bin/sh)。我们的开发环境是Linux上的Java。我想做的是为开发人员提供一种方法,让他们编写Jython脚本,然后放入一个shell,让他们可以检查系统。我需要从Jython或Java执行这个命令的原因——而不是将所有这些都包装在shell脚本中——是因为我们使用Java加载一些库,我需要在交互式shell运行时保持这些库的加载。如果JVM在交互式shell运行之前终止,我们的一些定制硬件将被重置
我已经看过Jython子流程模块。然而,我所看到的大部分内容只会运行并等待子进程终止(即非交互式)。没有一个示例显示如何以交互方式调用shell。大多数Java也是如此。lang.Runtime。我见过的exec()示例
# 1 楼答案
这个简单的jython代码的错误在于,stdin、stdout不能像我们期望的那样工作
假设我们想要在tty上生成shell,下面的代码似乎是 提供更好的结果:
这将在另一个子shell中运行shell,该子shell用活动tty替换受损的stdin、stdout流