java.io.FileNotFoundException брошено по неизвестной причине - PullRequest
0 голосов
/ 09 октября 2011

Проблема решена !!!Я перенес всю папку с рабочего стола в папку c: \ и по какой-то причине она работает

У меня очень странный сценарий.
Я пытаюсь запустить версию моего партнера, которая полностью работает без каких-либоисключения в его компьютере - это тот же проект ..
Есть идеи?
Добавлен соответствующий код ..

public class DJ implements Runnable
{
    private static final int k_SoundLoop = 500;
    private static final int k_NumberOfSong = 2;
    private static final int k_CairoTrainSong = 0;
    private static final int k_MachineSong = 1;


    private ArrayList<Clip> m_Records = new ArrayList<Clip>();
    private int m_CurrentRecored = 0;
    private Thread m_MusicThread = null;
    private AppletContext m_AppletContext;
    //java.net.URL m_CodeBase;
    //AppletContext ac;

    public DJ() 
    {
        try 
        {
            createClip(getClass().getResource("/Music/train.au"));
            createClip(getClass().getResource("/Music/machine.au"));
        }
        catch (Exception ex)
        {
            Logger.getLogger(DJ.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    private void createClip(URL i_SoundFileURL) throws Exception
    {

        File soundFile = new File(i_SoundFileURL.getFile());
        AudioInputStream sound = AudioSystem.getAudioInputStream(soundFile);
        // load the sound into memory (a Clip)
        DataLine.Info info = new DataLine.Info(Clip.class, sound.getFormat());
        Clip clip = (Clip) AudioSystem.getLine(info);
        clip.open(sound);
        m_Records.add(clip);
    }


    public void play()
    {
        m_Records.get(m_CurrentRecored).loop(k_SoundLoop);
    }


    public void play(int i_RecoredNumber)
    {
        stopCurrentClipIfNeeded();
        m_CurrentRecored = i_RecoredNumber;
        m_Records.get(m_CurrentRecored).start();
    }

    public void stop()
    {
        stopCurrentClipIfNeeded();
        m_CurrentRecored = 0;
    }

    public void stop(int i_RecordNumber)
    {
        m_Records.get(i_RecordNumber).stop();
    }

    public void Next()
    {
        stopCurrentClipIfNeeded();
        m_CurrentRecored = ((m_CurrentRecored+1)%k_NumberOfSong);
        m_Records.get(m_CurrentRecored).start();
    }


    private void stopCurrentClipIfNeeded()
    {
        if (m_Records.get(m_CurrentRecored).isRunning())
        {
            m_Records.get(m_CurrentRecored).stop();
        }
    }

    public boolean IsRunning()
    {
        return m_Records.get(m_CurrentRecored).isRunning();
    }

    public void CloseRecoredSet()
    {
        for (Clip clip : m_Records)
        {
            clip.close();
        }
    }

    @Override
    public void run()
    {
        m_Records.get(m_CurrentRecored).start();
    }



}

Спасибо

Я последовательно получаю это:

08/10/2011 23:47:48 LogicEngine.DJ <init>
SEVERE: null
java.io.FileNotFoundException: C:\Users\Dan\Desktop\CairoNightTrain\CairoNightTrain\CairoNightTrainClient\src\Music\train.au (‏‏System can not find the path specified)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:106)
        at com.sun.media.sound.WaveFileReader.getAudioInputStream(WaveFileReader.java:205)
        at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1162)
        at LogicEngine.DJ.createClip(DJ.java:56)
        at LogicEngine.DJ.<init>(DJ.java:42)
        at GUI.JPanelGameApplet$1.run(JPanelGameApplet.java:63)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatc

1 Ответ

1 голос
/ 09 октября 2011

C: \ Users \ Dan \ Desktop \ CairoNightTrain \ CairoNightTrain \ CairoNightTrainClient \ src \ Music \ train.au

Ваш друг называется Даном случайно?Не могу найти этот файл.Я думаю, что это довольно ясно?

Что означает этот отпечаток?

File file = new File("/Music/train.au");
String absolutePathOfFile = file.getAbsolutePath();
System.out.println(" The absolute path is " + absolutePathOfFile);
...