我正在尝试通过Julias REPL打开一个程序。我希望结果就像我在文件资源管理器中双击.exe文件一样。
我尝试使用run(`program.exe`)
,但找不到文件。然后我意识到我需要一个命令在前面,所以我尝试了run(`run program.exe`)
。似乎找到了程序,但是它立即崩溃了。
答案 0 :(得分:1)
我假设您的计算机的操作系统是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手册的the relevant entry中找到有关运行外部程序的更多信息。