我需要能够使用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,如果是,那么有人可以告诉我一种运行这些文件的方法吗? ^ _ ^
答案 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文件关联来启动文件我从来没有多少运气。我想到了两个选择:
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与您的应用程序捆绑在一起并使用它。启动它的过程与上面的过程相同,只需要更改命令的路径。