我正在尝试通过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`)
如果您不希望此行为,则可以将run
与wait=false
关键字选项一起使用。
run(`$path`, wait=false)
如果 wait 为 false,则进程异步运行,并且进程的 I/O 流将定向到devnull
。这实际上不会分离进程。如果终止julia
进程,可执行文件的进程也会被终止。
您可以改为使用cmd /c start
在另一个cmd
窗口中打开可执行文件。可执行文件的进程应该与 Julia 分离。
run(`cmd /c start $path`)
您可以在 Julia 手册的相关条目中找到有关运行外部程序的更多信息。