问题是你如何获得资源。
您将 wav 文件放在src
文件夹中,然后尝试使用 FileInputStream 获取它们,这是行不通的。
如果您将文件放入 jar 中,您应该通过以下方式访问它们:
getClass().getResourceAsStream(filepath)
像这样的东西。
public class LoadFile {
public static void main(String[] args) throws Exception {
InputStream stream =
LoadFile.class.getResourceAsStream("/songwavs/s1_..._.wav");
AudioSystem.getAudioFileFormat(stream);
AudioSystem.getAudioFileFormat(url);
}
}
这只是一个例子,重点是作为 jar 内的资源,ClassLoader 是获取它的工具。
因此,在非静态方法中,您可以使用:
public void myMethod() throws Exception{
InputStream stream = getClass().getResourceAsStream("/songwavs/s1_..._.wav");
AudioSystem.getAudioFileFormat(stream);
}
在某些情况下,您需要像这样使用 Thread 类加载器:
public void myMethod2() throws Exception{
InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("/songwavs/s1_..._.wav");
AudioSystem.getAudioFileFormat(stream);
}
然后,您可以在从 eclipse 或 jar 运行时读取您的文件。
关于如何打包和部署应用程序,还有很多可以说的,但这只是一个开始。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句