Kiedy eksportuję mój kod jako działający plik JAR z zaćmienia, wszystkie pliki, które ustawiłem, aby przechwytywać, takie jak obrazy przycisków i inne pliki, są niedostępne, mimo że faktycznie znajdują się w pliku JAR. . Dodałem getClass().getResource
przed plikami, ale kiedy próbuję uruchomić JAR nic się nie dzieje, jakieś sugestie?Brakujące pliki JAR Brakujące obrazy/pliki (zasoby)
Odpowiedz
Wygląda na to, że nie umieszczasz swoich rzeczy we właściwym znaczeniu. W celu uczynienia go pracy, wykonaj następujące kroki:
- prawym przyciskiem myszy
Project
wProject Explorer Tree
. - Przejdź do
New -> Source Folder
, a następnie podajName
doSource Folder
. - Teraz ręcznie dodaj swoje rzeczy do tego
Source Folder
, tak utworzonego przez ciebie, na przykład, jeśli chcesz dodać obrazy, następnie wykonajNew Folder
, ręcznie odwiedzając tenSource Folder
doFile System
. - Nazwij to
New Folder
jakoimages
i skopiuj zdjęcia do tegoFolder
. - Teraz wróć do swojego Eclipse IDE i
Refresh
swojegoProject
z Project Explorer, klikając prawym przyciskiem myszy na swój projekt, tutaj możesz zobaczyć swoją dodaną zawartość po odświeżeniu.
Teraz, aby uzyskać dostęp, powiedz dowolny obraz, użyjesz.
getClass().getResource("/images/yourImageName.extension");
która zwróci jeden obiekt URL. Pamiętaj w tym przypadku o numerze first forward slash
, ponieważ dostęp do zawartości folderu źródłowego jest uzyskiwany za pomocą tego prostszego kodu. Teraz, gdy uruchomisz swój projekt, zawartość tego Folderu Źródłowego zostanie automatycznie dodana do folderu bin, a kiedy utworzysz Runnable Jar, dostęp do zawartości wewnątrz twojego Folderu Źródłowego będzie możliwy bez zmian.
Ścieżka musi być odpowiednia dla zasobu.
Dla "foo.gif" znajdującego się w katalogu głównym słoika należy odwoływać się do niego za pomocą "/foo.gif".
Jeśli program działa poprawnie po całkowitym wyczyszczeniu i odbudowaniu, ale kończy się niepowodzeniem jako słoik, najprawdopodobniej nie ma plików zawartych w słoiku.
Spróbuj umieścić foldery w słoiku w taki sam sposób, jak w programie. Umieść te same zasoby w tych samych miejscach, w których masz je w projekcie. Słoik odwoła się do nich w taki sam sposób, jak w twoim kompilatorze.
Musisz uzyskać obrazy przy użyciu strumienia w ten sposób - this.class.getClassLoader(). GetResourceAsStream ("test.jpg") i upewnij się, że obrazy są obecne w słoiku, do którego się odwołujesz.
Jak powiedział nIcE cOw, wystarczy utworzyć folder źródłowy w drzewie eksploratora projektu. Wszystkie pliki znajdujące się w tym folderze znajdują się w głównym folderze projektu.
Aby odnieść się do nich, należy napisać imię i nazwisko projekty slash nazwę jak plik:
getClass().getResource("ProjectName/image.extension");
Mam nadzieję, że to pomoże!
- 1. Zasoby Railsów brakujące po wdrożeniu Capistrano
- 2. TortoiseSVN - brakujące pliki w kliencie
- 3. Złap brakujące zasoby lokalne w plikach Resx
- 4. PlugIn QuickLook to "uszkodzone/brakujące zasoby". Czemu?
- 5. Problemy z programem Proguard w plikach jar, jak znaleźć brakujące pliki jar?
- 6. Odzyskaj brakujące pliki z zdalnego repo?
- 7. SVN: brakujące pliki w lokalnej kopii
- 8. Workspace brakujące połączone pliki z kopii roboczej
- 9. Brakujące pliki dla biblioteki `magic` na Windows
- 10. Brakujące pliki routes.php w Nowym Projekcie Laravel
- 11. Znaleźć brakujące pliki w kodzie Xcode
- 12. Proguard.cfg Brakujące
- 13. Brakujące znaczniki serwera po wygenerowaniu zasobów lokalnych
- 14. Brakujące Nieruchomości w HttpWebRequest
- 15. Matplotlib Errorbar Brakujące czapki
- 16. PercentRelativeLayout - brakujące ostrzeżenie layout_pln
- 17. Brakujące właściwości Javascript "Object.getOwnPropertyNames"?
- 18. svn log brakujące wersje
- 19. Ostrzeżenie "Brakujące średniki" Aptany
- 20. Udział Facebooka - brakujące teksty
- 21. Brakujące kraje Jvectormap
- 22. brakujące libgeos_c.so na OSX
- 23. paszport js brakujące poświadczenia
- 24. Brakujące dane w pandas.crosstab
- 25. Brakujące platformy Android narzędzia
- 26. Brakujące błędy w pamięci podręcznej?
- 27. iOS - Crashlytics - brakujące kilka awarii
- 28. Brakujące pliki, DirectX SDK (d3dx9.lib, d3dx9.h)
- 29. Brakujące pliki dll podczas korzystania z programu piszącego
- 30. Pokrycie kodu za pomocą Xcode 4.2 - Brakujące pliki
Pokaż nam prawdziwy kod, a także listę zawartości pliku JAR zawierającego ścieżki. – ziesemer