我有一个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);
我知道我可以从后台进程检索输出,但这是无用的,因为程序是交互式的。
非常感谢任何帮助。甚至精心设计的解决方法:)
答案 0 :(得分:0)
你可以试试这个:
String[] commands = { "gnome-terminal", "-x", "-c", "./My_C_Program" };
theProcess = Runtime.getRuntime().exec(commands);
不确定是否有效。没试过。
也许你没有gnome-terminal而是像x-term那样的东西。它应该几乎相同。