代码之家  ›  专栏  ›  技术社区  ›  Ahmad

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

  •  1
  • Ahmad  · 技术社区  · 11 年前

    我有一个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 回复  |  直到 11 年前
        1
  •  0
  •   celezar    11 年前

    您可以改为尝试:

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

    不确定它会起作用。没有尝试过。

    也许你没有gnome终端,但有其他类似x术语的东西。应该差不多。