Итак, у меня есть сценарий sh, который находится в моей папке «Загрузки». С помощью этого скрипта мне удалось открыть терминал в определенной папке:
String command = "/usr/bin/nome-terminal.wrapper";
File workDir = new File("/home/user/Downloads");
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command, null, workDir)
И затем я хотел запустить сценарий после загрузки терминала, поэтому я заменил приведенный выше сценарий следующим образом:
String command= "/usr/bin/nome-terminal.wrapper -e 'myScript.sh; bash'";
File workDir = new File("/home/user/Downloads");
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command, null, workDir)
Но я получаю ошибку: here was an error creating the child process for this terminal. Failed to execute child process “'myScript” (No such file or directory)
Примечание: я не хочу запускать скрипт напрямую. Я хочу, чтобы терминал запускал его
ОБНОВИТЬ
Я пробовал использовать это:
String[] cmdArray = new String[2];
cmdArray[0] = "usr/bin/gnome-terminal.wrapper";
cmdArray[1] = "myScript.sh";
Process process = Runtime.getRuntime().exec(cmdArray, null,new File("/home/user/Downloads"));
но я получаю сообщение об ошибке: java.io.IOException: Cannot run program "usr/bin/gnome-terminal.wrapper" (in directory "/home/user/Downloads"): error=2, No such file or directory
, когда он пытается найти исполняемый файл терминала в моей папке загрузок.
@pvpkiran Я пробовал, но все равно не работает. См. Править
@pvpkiran любые идеи, в чем может быть проблема
Вы во всех случаях ошибались при вводе названия /usr/bin/gnome-terminal.wrapper
. Вероятно, это не вся проблема, но попробуйте исправить очевидные опечатки. В качестве первого символа используется косая черта, а после последней - g
. (Нет необходимости вводить полный путь, если он находится в вашем PATH
, как таковой.)
ты проверил это stackoverflow.com/questions/15356405/…