windows-10 - 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;
}
解决方案
推荐阅读
- python - Python错误:TypeError:(“
不能转换为日期时间") - java - 拿起_JAVA_OPTIONS:-Dawt.useSystemAAFontSettings=on
- javascript - 使用数据重定向到另一个页面
- php - shell_exec() 来自 php 的 tcpdump
- javascript - 如何使用 Javascript 将 HTML 属性添加到数组
- python - 将字符串分配给列表
- java - Eclipse:读取不同文件夹中的包
- java - n >> 3 或 n & 3 是否分别比 n/8 或 n % 8 提供任何优势?
- node.js - 如何解决此错误:JSON.parse 角度位置 1 处 JSON 中的意外标记 o
- yaml - 无法在 GKE 上部署 Google 云端点