Юлия - Как запустить исполняемый файл из REPL - PullRequest
0 голосов
/ 06 апреля 2019

Я пытаюсь открыть программу через Julias REPL.Я хотел бы, чтобы результат выглядел так, как будто я дважды щелкнул по файлу .exe в проводнике.

Я попытался использовать run(`program.exe`), но не смог найти файл.Затем я понял, что мне нужна команда впереди, поэтому я попытался run(`run program.exe`).Похоже, что это находит программу, но она сразу падает.

1 Ответ

1 голос
/ 07 апреля 2019

Я предполагаю, что операционная система вашего компьютера - Windows.

Возможно, вам потребуется использовать полный путь к вашему исполняемому файлу, и хороший способ ввести путь при создании объекта команды с помощью `` - создать строку и интерполировать ее. В противном случае пробелы и специальные символы могут создать проблему. Вот пример,

path = "C:\\Program Files\\Mozilla Firefox\\firefox.exe"
run(`$path`)

Однако запуск такого способа не всегда похож на двойной щелчок по файлу EXE. Выполняемый исполняемый файл все еще может быть присоединен к вашему терминалу, и вы не сможете запускать новые команды в Julia REPL, пока не завершится созданный процесс. Например, попробуйте следующее и попробуйте ввести команду в Julia REPL, не закрывая окно:

run(`notepad`)

Если вам не нужно это поведение, вы можете использовать run с ключевым словом wait=false.

run(`$path`, wait=false)

Если ожидание ложно, процесс выполняется асинхронно и потоки ввода-вывода процесса направляются на devnull. Это на самом деле не отделить процесс. Если вы убьете процесс julia, процесс исполняемого файла также будет уничтожен.

Вместо этого вы можете использовать cmd /c start, чтобы открыть исполняемый файл в другом окне cmd. Процесс исполняемого файла должен быть отделен от Джулии.

run(`cmd /c start $path`) 

Дополнительную информацию о запуске внешних программ вы можете найти в соответствующей записи руководства Julia.

...