ProcessBuilder.start() 不会立即启动进程

问题描述

我编写了一个过程来调用音频播放器 (VLC) 来播放由 Java 程序准备的播放列表。到目前为止,这工作得很好。但是最近(不知道从什么时候开始)它改变了它的行为。只有在我关闭程序或从程序(它从哪里开始)切换到不同的屏幕后,VLC 才会启动。完全关闭程序将随时启动 VLC,切换到不同的屏幕并不总是有效。 我怀疑这可能与较晚的 Windows 10 更新有关。有没有人有过同样的经历,并且对如何克服这个问题有一些好的建议?

private void callAudioPlayer() {
    
    String tmpPath = System.getProperty("java.io.tmpdir") + "temp.m3u";
    BufferedWriter br;
    try {
        br = new BufferedWriter(new FileWriter(new File(tmpPath)));
        for (int i = 0; i < tablePL.getItemCount(); i++) {
            String str = filePath + tablePL.getItem(i).getText(1);
            if (windows) {
                if (str.startsWith("file:")) str = str.substring(5);
                str = str.replace("/","\\");
            }
            br.write(str);
            br.newLine();
        }
        br.close();
        ProcessBuilder pb = new ProcessBuilder(txtPlayerDir.getText(),tmpPath);
        pb.start();
    } catch (IOException e) {
        logger.severe("Error in callAudioPlayer()");
        logger.log(Level.SEVERE,e.getMessage(),e);
    }
        
    return;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)