Julia - 如何从 REPL 启动可执行文件

Julia - How to launch an Executable file from REPL

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

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

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

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

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

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

的情况下在 Julia REPL 中输入命令
run(`notepad`)

如果您不希望出现这种情况,可以使用 runwait=false 关键字选项。

run(`$path`, wait=false)

如果 wait 为 false,进程 运行 将异步进行并且进程的 I/O 流被定向到 devnull。这实际上并没有分离过程。如果您杀死 julia 进程,可执行文件的进程也将被杀死。

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

run(`cmd /c start $path`) 

您可能会在 Julia 手册的 the relevant entry 中找到有关 运行ning 外部程序的更多信息。