我尝试制作一个小程序,允许我搜索抽搐流并在livestreamer和vlc中打开。
所以我有这个方法应该运行livestreamer。
public static void runLiveStreamer(String channel, String quality) throws IOException{
String cmd = new String("livestreamer.exe twitch.tv/" + channel + " " + quality);
System.out.println(cmd);
Process proc = Runtime.getRuntime().exec(cmd);
return;
}
我运行我的代码并没有任何反应,它不会抛出异常或停止工作。 正如您所看到的,我有额外的代码行打印出我执行的命令。当我通过cmd运行它工作正常。我怎样才能使它发挥作用?
提前感谢您的帮助,对不起我的英语。
答案 0 :(得分:0)
当您通过Runtime.getRuntime()。exec()运行某个应用程序时,您需要等到应用程序终止。当runLiveStreamer()方法结束时,我正在终止livestreamer。
更新了代码(这个while循环正在工作,直到livestreamer终止,如果你不需要输出你也可以使用proc.wait())
public static void runLiveStreamer(String channel, String quality) throws IOException{
String[] cmd = new String[]{"livestreamer.exe", "twitch.tv/"+channel, quality};
Process proc = Runtime.getRuntime().exec(cmd);
InputStreamReader isr = new InputStreamReader(proc.getInputStream());
BufferedReader br = new BufferedReader(isr);
String line=null;
while ( (line = br.readLine()) != null)
System.out.println(line);
}