2013-04-15 14 views
10

mojego kodu.getResourceAsStream filepath podczas uruchamiania .jar

BufferedInputStream bis = 
    new BufferedInputStream(getClass().getResourceAsStream("playerhit.mp3")); 

Ten kod działa poprawnie, gdy plik playerhit.mp3 jest w tym samym opakowaniu co MP3.class jest uruchomiony w biegnę to jako JAR. Jeśli mimo to zmienię ścieżkę pliku na taką, jak /src/data/audio/playerhit.mp3, to już nie działa. Czy mimo to istnieje dostęp do innej ścieżki do pliku niż katalog główny pakietu podczas działania jako .jar?

+0

Czy 'playerhit.mp3' skopiowane na ścieżce klasy podczas kompilacji? Do czego budujesz: Ant, Maven, ...? –

+0

Nie sądzę ... i używam netbeans do budowania. – user2281673

+0

Czy użyłeś "data/audio/playerhit.mp3" zamiast "playerhit.mp3"? – NINCOMPOOP

Odpowiedz

6

Spójrz na Javadoc for getResourceAsStream(...).

Jeśli argument zaczyna się od /, to bezwzględna nazwa zasobu jest częścią nazwy następującej po /. W przeciwnym razie bezwzględna nazwa ma następującą postać: modified_package_name/name Gdzie modified_package_name to nazwa pakietu dla tego obiektu z / podstawiona na ..

Tak więc, jeśli twój playerhit.mp3 jest w katalogu głównym twojej struktury paczki, powinieneś oznaczyć go jako /playerhit.mp3. Jeśli jest w wersji /src/data/audio/, prawdopodobnie powinieneś użyć /data/audio/playerhit.mp3 - ale sprawdź zawartość pliku JAR, aby mieć pewność.

+0

To jest /data/audio/playerhit.mp3. Próbowałem użyć "/ data/audio /", które nie działa, nawet działając prosto z netbeans, a "./data/audio" działa inaczej, ale nie, gdy uruchamiamy z .jar – user2281673

+0

Czy folder "data" w ścieżce klas jest w Netbeans? Metoda 'getResourceAsStream()' ładuje tylko zasoby znajdujące się w ścieżce klasy. – mthmulders

+1

Ok teraz czuję się głupio. Po użyciu ścieżki jako "data/audio/filename.mp3" bez slasha lub kropki, udało mi się to zrobić. Pozdrawiam facetów, mam nadzieję, że to przynajmniej pomaga innym – user2281673

0

Sprawdź najpierw, czy plik znajduje się w słoiku.

Sprawdź lokalizację wewnątrz słoika.

względna ścieżka: Pakiet prąd

Ścieżka bezwzględna: korzeń słoiku

Powiązane problemy