如何从Java启动交互式命令行界面程序?

时间:2014-02-16 09:17:28

标签: java linux bash foreground

我有一个Java程序需要在前台启动交互式命令行界面C程序。我需要它在Windows和Linux中都能运行。

在Windows中,一切正常。我可以使用cmd在前台启动我的程序,如下所示:

command = "cmd /c start \"My_C_Program\" /MAX /WAIT My_C_Program ";
theProcess = Runtime.getRuntime().exec(command);

在Linux中,我无法对/bin/bash执行相同的操作。无论我尝试什么,这个过程总是在后台运行:

String[] commands = { "/bin/bash", "-c", "./My_C_Program" };
theProcess = Runtime.getRuntime().exec(commands);

我知道我可以从后台进程检索输出,但这是无用的,因为程序是交互式的。

非常感谢任何帮助。甚至精心设计的解决方法:)

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

String[] commands = { "gnome-terminal", "-x", "-c", "./My_C_Program" };
theProcess = Runtime.getRuntime().exec(commands);

不确定是否有效。没试过。

也许你没有gnome-terminal而是像x-term那样的东西。它应该几乎相同。