Jan*_*ick 3 java runtime external execute runtime.exec
我正在尝试从java应用程序中启动VideoLAN程序的实例.我试图这样做的方法之一如下所示:
Process p = Runtime.getRuntime().exec("\"C:\\Program Files\\VideoLAN\\VLC\\vlc.exe\" \"http://www.dr.dk/Forms/Published/PlaylistGen.aspx?qid=1316859&odp=true\" :sout=#std{access=udp,mux=ts,dst=127.0.0.1:63928}");
Run Code Online (Sandbox Code Playgroud)
如果我执行上述命令,将启动vlc程序,并将启动流操作(它通过连接,缓冲然后流式传输).
当命令由Runtime exec(或ProcessBuilder启动)执行时,vlc程序将在缓冲阶段结束时挂起.如果java程序中的所有线程都终止/运行到结束,则vlc程序将进入流式阶段.在vlc进程关闭之前,java进程不会终止,因此这种行为显然是进程之间某种耦合的结果.
尝试通过将命令写入.cmd文件然后执行它来间接执行命令,但会导致相同的行为.
关于如何避免外部过程挂起的任何想法?
| 归档时间: |
|
| 查看次数: |
3781 次 |
| 最近记录: |