2014-08-28 116 views
-4

因此,在過去運行.jar文件時沒有問題。 .jar程序一直運行良好,正在播放音樂,顯示圖像等。嘗試運行錯誤.Jar文件

但是最近我在另一個音樂文件中添加了另一個音樂文件(其格式與其餘的格式相同,尺寸略小),現在,當我導出到.jar文件,.jar文件不會正常運行,它只是顯示一個白色的窗體。

任何幫助將會很棒! :)

編輯:我跑了使用命令提示符的文件,這個錯誤想出了:

java.io.IOException: mark/reset not supported        
at java.util.zip.InflaterInputStream.reset(Unknown Source)      
at java.io.FilterInputStream.reset(Unknown Source)        
at com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(Unknown Source)                    at javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)   
at Audio.AudioPlayer.<init>(AudioPlayer.java:14)         
at GameState.StateManager.<init>(StateManager.java:60)       
at Main.GamePanel.init(GamePanel.java:77)          
at Main.GamePanel.run(GamePanel.java:82)           
at java.lang.Thread.run(Unknown Source)         
Exception in thread "Thread-2" java.lang.NullPointerException       
at GameState.StateManager.update(StateManager.java:174)       
at Main.GamePanel.update(GamePanel.java:122)          
at Main.GamePanel.run(GamePanel.java:93)           
at java.lang.Thread.run(Unknown Source) 
+0

你是如何創建JAR文件的? – J4v4 2014-08-28 17:09:48

+0

在Eclipse文件>導出>可運行Jar文件>軟件包所需庫.. 到底是如何我以前一直在做它,直到現在。 – GenericMadman 2014-08-28 17:14:06

+0

代碼很好,直到現在它已經運行完畢,但我又添加了一個文件,它根本不喜歡它。該文件的格式與其他文件的格式完全相同。它在eclipse中運行良好,只有當我將它導出到它發動的.jar文件時。 – GenericMadman 2014-08-28 17:27:37

回答

0

的InflaterInputStream的復位()函數未實現並總是拋出異常。

API

The method reset for class InflaterInputStream does nothing except throw an IOException.

真正的問題是,爲什麼SoftMidiAudioFileReader調用該方法?

爲了找到答案,我所做的就是谷歌「com.sun.media.sound.SoftMidiAudioFileReader」和第一個結果是差不多的錯誤StackOverflow的問題:Got an exception while working with javax.sound.samples library....!

事實證明,這種情況發生時,你給AudioPlayer一個無效的聲音文件。檢查以確保聲音文件是有效的,因爲它不是。

+0

乾杯,我會周圍挖。 – GenericMadman 2014-08-28 17:32:56