Как запустить интерактивную программу интерфейса командной строки из Java?
У меня есть Java-программа, которая должна запустить интерактивную программу интерфейса C командной строки на переднем плане. Мне нужно, чтобы это работало как в Windows, так и в Linux.
В винде все отлично работает. Я могу запустить свою программу на переднем плане с 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 ответ
Вы можете попробовать это вместо этого:
String[] commands = { "gnome-terminal", "-x", "-c", "./My_C_Program" };
theProcess = Runtime.getRuntime().exec(commands);
Не уверен, что это сработает. Не пробовал.
Может быть, у вас нет gnome-терминала, но есть что-то вроде x-term. Это должно быть почти то же самое.