有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

尝试运行时发生java错误。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) 

共 (1) 个答案

  1. # 1 楼答案

    InflaterInputStream的reset()函数未实现,始终引发该异常

    API开始:

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

    真正的问题是,为什么SoftmidAudioFileReader会调用该方法

    为了找到答案,我只做了谷歌“com.sun.media.sound.softmidiaAudioFileReader”,第一个结果是关于相同错误的StackOverflow问题:Got an exception while working with javax.sound.samples library....!

    事实证明,当你给音频播放器一个无效的声音文件时,就会发生这种情况。检查以确保声音文件有效,因为它不是