朱莉娅 - 如何从 REPL 启动可执行文件



我正在尝试通过Julias REPL打开一个程序。我希望结果就像我在文件资源管理器中双击.exe文件一样。

我尝试使用run(`program.exe`)但它找不到该文件。然后我意识到我需要在前面有一个命令,所以我尝试run(`run program.exe`).这似乎找到了程序,但它立即崩溃。

我假设您计算机的操作系统是Windows。

您可能需要使用可执行文件的完整路径,并且在使用``创建命令对象时输入路径的好方法是创建一个字符串并插入它。否则,空格和特殊字符可能会产生问题。这里有一个例子,

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

但是,以这种方式运行并不总是像双击 EXE 文件一样。正在运行的可执行文件可能仍附加到您的终端,在创建的进程退出之前,您可能不会在 Julia REPL 中运行新命令。例如,尝试以下操作并尝试在不关闭窗口的情况下在 Julia REPL 中输入命令:

run(`notepad`)

如果您不希望此行为,则可以将runwait=false关键字选项一起使用。

run(`$path`, wait=false)

如果 wait 为 false,则进程异步运行,并且进程的 I/O 流将定向到devnull。这实际上不会分离进程。如果终止julia进程,可执行文件的进程也会被终止。

您可以改为使用cmd /c start在另一个cmd窗口中打开可执行文件。可执行文件的进程应该与 Julia 分离。

run(`cmd /c start $path`) 

您可以在 Julia 手册的相关条目中找到有关运行外部程序的更多信息。

最新更新