Команда является исполняемой в терминале, который я открыл, но не могу выполнить, когда я использую функцию Java, чтобы открыть терминал и выполнить его - PullRequest
0 голосов
/ 06 октября 2018

Я пытаюсь написать программу Java, которая может открыть терминал и ввести команду для него.Команда "wrspice", которая может запустить приложение.Я добавил "wrspice" PATH в .bashrc, и он работает нормально.Но когда я пишу код Java, используя ProcessBuilder для выполнения, появляется сообщение «bash: wrspice: команда не найдена».Вот мой код Java:

final String[] wrappedCommand;
wrappedCommand = new String[]{ "xterm", "-hold", "-e", "wrspice"};
Process process = new 
ProcessBuilder(wrappedCommand).redirectErrorStream(true).start();

Этот код отлично работает, когда я заменяю «wrspice» на «ls» для печати списка файлов.Но когда я пытаюсь использовать «wrspice», появляется сообщение об ошибке «команда не найдена».

Вот как я могу добавить «wrspice» в .bashrc: export PATH = / usr / local / xictools / bin: $ PATH

У кого-нибудь есть идеи?Заранее спасибо.

1 Ответ

0 голосов
/ 06 октября 2018

Java не является интерактивной оболочкой.Вместо этого укажите полный путь к вашей команде.И вам не нужно new String[].Например,

wrappedCommand = { "xterm", "-hold", "-e", "/usr/local/xictools/bin/wrspice"};

Возможно, вам следует указать и путь к xterm.Дважды проверьте вашу систему.

wrappedCommand = { "/usr/bin/xterm", "-hold", "-e", "/usr/local/xictools/bin/wrspice"};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...