我试图在导出程序后从.jar文件中运行我的.wav文件,并对解决方案进行了广泛的研究,但发现没有任何效果。
这是我目前的代码:
Clip clip = AudioSystem.getClip();
clip.open(AudioSystem.getAudioInputStream(new File("soundfile.wav")));
clip.start();
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
Jar
文件的上下文中包含的资源通常称为嵌入式资源。
这些资源无法像普通文件系统资源一样访问(即通过File
类),而是需要使用Class#getResource
,这将返回URL
,这可以在你的情况下,传递给AudioSystem.getAudioInputStream
您可以使用类似......
的内容clip.open(AudioSystem.getAudioInputStream(getClass().getResource("/path/to/resources/soundfile.wav")));
在此示例中,路径相对于类实例的包位置。这意味着如果资源位于另一个目录中,您将需要提供资源的完整路径