所以我在过去运行.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 :(得分:0)
InflaterInputStream的reset()函数未实现,始终抛出异常。
来自API:
类InflaterInputStream的方法reset除了抛出IOException外什么都不做。
真正的问题是,为什么SoftMidiAudioFileReader会调用该方法?
为了找到答案,我所做的只是google&#34; com.sun.media.sound.SoftMidiAudioFileReader&#34;第一个结果是关于同一错误的StackOverflow问题:Got an exception while working with javax.sound.samples library....!
事实证明,当您为AudioPlayer提供无效的声音文件时会发生这种情况。检查以确保声音文件有效,因为它不是。