Проблема запуска Ant Script в Netbeans 6.1 - PullRequest
0 голосов
/ 18 февраля 2011

Я пытался импортировать свой муравей скрипт. И это успешно. Но когда я это скомпилирую. Я получил эту ошибку:

run-selected-file-in-src:
java.io.FileNotFoundException: ..\sounds\voice.wav (The system cannot 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 SimpleSoundPlayer.<init>(SimpleSoundPlayer.java:35)
        at SimpleSoundPlayer.main(SimpleSoundPlayer.java:12)
Exception in thread "main" java.lang.NullPointerException
        at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:89)
        at SimpleSoundPlayer.main(SimpleSoundPlayer.java:16)
D:\Windows\My Document\Latihan\Java\allsrc\ch04src\nbproject\ide-file-targets.xml:7: Java returned: 1
BUILD FAILED (total time: 0 seconds)

Это моя структура папок

root
+-build(all *.class store here)
+-images
+-nbproject(netbeans create it)
+-sounds(voice.wav where i want to load)
+-src(all *.java - When i compile. All *.class will store to "build" folder)
+-build.xml

У меня вопрос, почему файл класса (SimpleSoundPlayer.class) не нашел ".. \ sounds \ voice.wav". Но когда я попробовал это из командной строки "Java SimpleSoundPlayer", это нормально.

Почему это случилось?

Ответы [ 2 ]

0 голосов
/ 19 февраля 2011

Я выяснил это !!!Особая благодарность "JB Nizet".Потому что я знаю, почему он не нашел файл wav.Поэтому я просто ищу, как изменить расположение по умолчанию (в данном случае в root) netbeans для компиляции (я хочу, чтобы netbeans компилировался из папки «build»).

Ключ находится в nbproject / ide-file-target.xml

root
+-build(all *.class store here)
+-images
+-nbproject(netbeans create it)
+-sounds(voice.wav where i want to load)
+-src(all *.java - When i compile. All *.class will store to "build" folder)
+-build.xml

<?xml version="1.0" encoding="UTF-8"?>
<project basedir="../build" name="chap04 - Sound Effects and Music-IDE">
    <!-- TODO: edit the following target according to your needs -->
    <!-- (more info: http://www.netbeans.org/kb/41/freeform-config.html#runsingle) -->
    <target name="run-selected-file-in-src">
        <fail unless="run.class">Must set property 'run.class'</fail>
        <java classname="${run.class}" failonerror="true" fork="true">
            <classpath>
                <pathelement path="build"/>
                <pathelement location="."/>
            </classpath>
        </java>
    </target>

Так что я просто перехожу на <project basedir=".." на <project basediir="../build", где я хочу компилировать netbeans.С этим изменением netbeans скомпилирует этот файл в папку «build».И ... WOWWW ... Этот файл работает правильно: D

0 голосов
/ 18 февраля 2011

Это происходит потому, что вы используете относительный путь для загрузки файла: ..\sounds\voice.wav. Когда вы делаете это, ваше приложение очень хрупкое, потому что оно должно быть запущено из определенного каталога, чтобы работать правильно.

Я подозреваю, что NetBeans запускает ваше приложение из корневой папки, а не из папки src или build.

Я бы порекомендовал поместить voice.wav в ваши исходники, чтобы он копировался в каталог сборки вместе с вашими файлами классов. Затем вы можете загрузить файл с помощью загрузчика классов, благодаря вызову Class.getResourceAsStream () .

...