如何使用Java运行文件?

如何使用Java运行文件?,java,audio,Java,Audio,我需要能够使用Java运行.mp3文件,我已经尝试过这个,但没有效果: processprocess=newprocessbuilder(“C:\\Users\\\\Desktop\\Music\\Cash\\timeout.mp3”) 然后跑 process.start(); 但是,它抛出了这个错误: java.io.IOException: Cannot run program "C:\Users\<removed>\Desktop\Music\Cash Cash\Overti

我需要能够使用Java运行.mp3文件,我已经尝试过这个,但没有效果:

processprocess=newprocessbuilder(“C:\\Users\\\\Desktop\\Music\\Cash\\timeout.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
java.io.IOException:无法运行程序“C:\Users\\Desktop\Music\Cash\timeout.mp3”:CreateProcess错误=193,%1不是有效的Win32应用程序
位于java.lang.ProcessBuilder.start(未知源)
位于com.newgarbo.music.Mooseec.main(Mooseec.java:50)
原因:java.io.IOException:CreateProcess错误=193,%1不是有效的Win32应用程序
在java.lang.ProcessImpl.create(本机方法)
位于java.lang.ProcessImpl。(未知源)
位于java.lang.ProcessImpl.start(未知源)
... 还有两个
我想这当然是因为
进程
只针对可执行文件/jar,如果是这样,那么有人能告诉我运行这些文件的方法吗^_^

您可以使用启动关联的应用程序来打开文件。大概

File mp3 = new File("C:\\Users\\<removed>\\Desktop\\"
    + "Music\\Cash Cash\\Overtime.mp3");
Desktop.getDesktop().open(mp3);
File mp3=新文件(“C:\\Users\\\\Desktop\\”
+“音乐\\现金\\加班加点.mp3”);
Desktop.getDesktop().open(mp3);

依靠Windows文件关联来启动文件,我从来没有这么幸运过。我想到两个选择:

  • 使用wmplayer.exe
  • 使用vlc.exe
  • wmplayer.exe应包含在大多数Windows安装(post 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();
    
    String command=“C:\\Program Files(x86)\\Windows Media Player\\wmplayer.exe”;
    String argument=“C:\\Users\\\\Desktop\\Music\\Cash\\timeout.mp3”;
    进程=新的ProcessBuilder(命令,参数).start();
    

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

    A
    .mp3
    文件不是程序。这是一个文件,需要一个程序来解释它的内容,并在你的扬声器上播放它们。您将需要这样的内容:
    超时。mp3
    不是可执行文件。您必须运行与MP3相关联的可执行文件,并将MP3文件传递给正在运行的进程。如果您希望这样运行它,并使用默认程序运行它,只需使用cmd(shell)。它将为您默认打开它。非常感谢!这正是我需要的@伯恩哈德基夫,不客气。不是你要求的,但是JavaFX还应该允许你用纯Java代码来玩它