的问题是你如何让你的资源。
你把你的wav文件中src
文件夹中的尝试使用的FileInputStream,这是行不通的得到它们。
如果你把你的文件放进瓶子里,你应该访问它们通过量:
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中的资源,ClassLoaders是获取它的工具。
所以,非静态方法里面可以使用:
public void myMethod() throws Exception{
InputStream stream = getClass().getResourceAsStream("/songwavs/s1_..._.wav");
AudioSystem.getAudioFileFormat(stream);
}
在某些情况下的,你需要使用线程的类加载器是这样的:
public void myMethod2() throws Exception{
InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("/songwavs/s1_..._.wav");
AudioSystem.getAudioFileFormat(stream);
}
然后你可以把阅读您的文件无论是从eclipse运行还是从jar运行。
更可以说如何打包应用程序和部署它,但是这仅仅是一个开始。
你用什么来建立你的jar? – ProgrammerBoy
从日食我用出口 - >运行的JAR文件 –
曾经尝试都“包所需的库到生成的JAR”和“提取所需的库到生成的JAR” –