Java 音频可以在Eclipse中工作,但不能在.jar中工作

Java 音频可以在Eclipse中工作,但不能在.jar中工作,java,eclipse,audio,jar,Java,Eclipse,Audio,Jar,以下代码在eclipse中运行时确实非常有效。但是当我将它导出到一个.jar文件并尝试从jar运行时,音频会播放半秒,大约3秒长。声音文件不在jar中。我使用System.getProperties(“user.home”)+PathToAudioFile获取路径;以下是我当前的代码段: public void postFloorLoc(String FloorLoc) { String audiopath = System.getProperty("user.home") + "/Bort

以下代码在eclipse中运行时确实非常有效。但是当我将它导出到一个.jar文件并尝试从jar运行时,音频会播放半秒,大约3秒长。声音文件不在jar中。我使用System.getProperties(“user.home”)+PathToAudioFile获取路径;以下是我当前的代码段:

public void postFloorLoc(String FloorLoc)
{   String audiopath = System.getProperty("user.home") + "/BortechData/audio/";

    txtFloorLocation.setText(FloorLoc);
    //choosing which file to play
    if(FloorLoc.contentEquals("1-FIFO"))
        audiopath = audiopath + "1-fifo.wav";
    if(FloorLoc.contentEquals("10-FIFO"))
        audiopath = audiopath + "10-fifo.wav";
    aufile = new File(audiopath);
    if(FloorLoc.contentEquals("1-FIFO") || FloorLoc.contentEquals("10-FIFO"))
    {   Thread t = new Thread(new Runnable(){

        @Override
        public void run() {
            try {
                Line.Info linfo = new Line.Info(Clip.class);
                Line line = AudioSystem.getLine(linfo);
                Clip auClip = (Clip)line;
                AudioInputStream ais = AudioSystem.getAudioInputStream(aufile);
                auClip.open(ais);
                auClip.setFramePosition(0);
                auClip.start();
            }
            catch(UnsupportedAudioFileException uae)
            { JOptionPane.showMessageDialog(null, uae); }
            catch(IOException ioe)
            { System.out.println(ioe); }
            catch(LineUnavailableException lua)
            { System.out.println(lua); }

            }

        }); 
        t.start();

    }
}

所有其他请求帮助的人都有同样的想法。同样,这在eclipse中也非常有效,但作为一个jar,我在大约3秒钟的时间里只获得了半秒的音频。因此,它会找到文件并开始播放,但不会播放所有文件。我遗漏了什么?

我的猜测是它在Eclipse中缓冲了整个剪辑,但不是从命令行。尝试增加内存分配池的大小(-Xmx1024m,对于GB),看看它是否可以播放更多的内存分配池