Мне нужно запустить процесс в новом окне консоли. Для компьютеров Mac я нашел нечто подобное: Запуск команда в новом окне терминала Mac OS X, где команда для запуска передается в виде строки.
Поэтому я сделал метод, который по списку строк (например, построитель процессов) возвращает список строк (последняя команда), которая запустит данную команду в новом окне консоли. Я мог бы добавить к заданным строкам пробелы, что в большинстве случаев будет работать, но как мне правильно избежать этого? Например, я могу передать построитель процессов new String[] { "echo", "hello world" }
, а он на самом деле делает echo "hello world"
. И это касается и многих других случаев (я думаю).
Я думаю, что объяснение сложное, поэтому вот псевдо-заглушка:
public static String[] getConsoleCommand(String[] command) {
if operating system is Mac...
String commandString = concatenate command...
return new String[] { "osascript", "-e",
String.format("'tell application \"Terminal\" to do script \"%s\"'",
commandString.replace("'", "\\\'")) // escape single quote used in 'tell application...'
};
}