的問題是你如何讓你的資源。
你把你的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」 –