2014-02-16 48 views
1

我有一个Java程序,需要在前台启动一个交互式命令行界面C程序。我需要这个在Windows和Linux上工作。如何从Java中启动交互式命令行界面程序?

在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); 

我知道我可以检索后台进程的输出,但由于该方案是互动的,这是没有用的。

任何帮助将不胜感激。即使是复杂的解决方法:)

+2

'bash'是一个不是窗口程序的shell,可以用'xterm'或者其他窗口来尝试 – 2014-02-16 09:20:14

+0

@RC。谢谢。这是问题。 – Ahmad

回答

0

可以代替试试这个:

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

不知道将它的工作。没有尝试过。

也许你没有GNOME终端,但有其他东西像x-term。它应该几乎相同。

+0

谢谢。这是问题。 – Ahmad

相关问题