2014-08-28 95 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