如何使用Java运行文件?

时间:2014-12-15 21:03:29

标签: java audio

我需要能够使用Java运行.mp3文件,我试过这个,但无济于事:

Process process = new ProcessBuilder("C:\\Users\\<removed>\\Desktop\\Music\\Cash Cash\\Overtime.mp3")

然后运行

process.start();

但是,它会抛出这个错误:

java.io.IOException: Cannot run program "C:\Users\<removed>\Desktop\Music\Cash Cash\Overtime.mp3": CreateProcess error=193, %1 is not a valid Win32 application
    at java.lang.ProcessBuilder.start(Unknown Source)
    at com.newgarbo.music.Mooseec.main(Mooseec.java:50)
Caused by: java.io.IOException: CreateProcess error=193, %1 is not a valid Win32 application
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(Unknown Source)
    at java.lang.ProcessImpl.start(Unknown Source)
    ... 2 more

我认为这当然是因为Process仅适用于可执行文件/ jar,如果是,那么有人可以告诉我一种运行这些文件的方法吗? ^ _ ^

2 个答案:

答案 0 :(得分:8)

您可以使用Desktop.open(File)启动关联的应用程序来打开文件。类似的内容,

File mp3 = new File("C:\\Users\\<removed>\\Desktop\\"
    + "Music\\Cash Cash\\Overtime.mp3");
Desktop.getDesktop().open(mp3);

答案 1 :(得分:0)

依靠Windows文件关联来启动文件我从来没有多少运气。我想到了两个选择:

  1. 使用wmplayer.exe
  2. 使用vlc.exe
  3. wmplayer.exe应该包含在大多数Windows安装(Vista之后)中,并且可以使用以下命令运行:

    String command = "C:\\Program Files (x86)\\Windows Media Player\\wmplayer.exe";
    String argument = "C:\\Users\\<removed>\\Desktop\\Music\\Cash Cash\\Overtime.mp3";
    Process process = new ProcessBuilder(command, argument).start();
    

    如果您希望保持一致并且不依赖于可能安装或未安装的任何内容,则可以将vlc与您的应用程序捆绑在一起并使用它。启动它的过程与上面的过程相同,只需要更改命令的路径。