【发布时间】:2014-03-16 09:01:14
【问题描述】:
我之前问过同样的问题但没有答案,并且发现了一些与此问题类似的其他问题here 和here 但同样没有适当的答案。 谁能帮我解决这个问题。我正在尝试从 Java 打开一个 shell 并与之交互(编写命令并读取 shell 的输出)。命令将由用户给出,如更改目录、编译 C 程序等。命令列表不固定。
我也尝试过并使用 /bin/bash -c 方法以及以下方法。
Process p = new ProcessBuilder("xterm").start();
Process p = new ProcessBuilder("/bin/bash").start();
谢谢,我希望问题很清楚。
【问题讨论】:
-
您的 Java 程序应该成为正在执行的 shell 的“指导者”,还是旨在运行 shell 并为用户提供与之交互的能力?
-
我想启动 shell 并重定向一些目录(Java 将使用 cd 命令更改 shell 的目录)。一旦开始,我希望用户可以与之交互。
-
如果要启动交互式shell,确实需要启动虚拟终端,仅shell是不够的。 shell 只处理命令、启动进程并将它们联系在一起,但它不是在框中显示输出的内容
-
你能解释一下你需要这个做什么吗?也许还有另一种方法可以做到这一点。交互式shell有几种java实现,如java shelljava-shell.sourceforge.netrhinodeveloper.mozilla.org/en/docs/Rhino/Shell和beanshell.org
-
我希望用 Java 开发一个 C 程序分析器。对于正确的模块开发,如果用户可以通过自己提供的 GUI 编译和执行 C 代码,而无需单独打开 bash 终端,这将很有用。
标签: java bash shell processbuilder