Jak stworzyć jar z zewnętrznymi bibliotekami zawartymi w Eclipse?


89

Skończyłem z projektem, który łączy się z bazą danych (MySQL). Teraz chcę wyeksportować projekt jako jar. Ale nie wiem, jak uwzględnić jego zewnętrzne zależności? Czy można to zrobić w Eclipse, czy powinienem użyć do tego skryptów?


Jak zamierzasz dostarczyć aplikację. do użytkownika końcowego? Sieć / internet, dysk lub pendrive, ... coś jeszcze? Czy aplikacja. masz GUI?
Andrew Thompson,

Odpowiedzi:


140

Kiedy eksportujesz swój projekt jako „Runnable jar” (prawy przycisk myszy na projekcie -> Export -> Runnable jar) masz możliwość spakowania wszystkich zależności do wygenerowanego jar. Ma również dwa inne sposoby (patrz zrzut ekranu), aby wyeksportować swoje biblioteki, pamiętaj o licencjach przy podejmowaniu decyzji, której metody pakowania będziesz używać.

Biblioteki pakietów

Lista rozwijana „Konfiguracja uruchamiania” jest zapełniana klasami zawierającymi main(String[])metodę. Wybrana klasa jest uruchamiana po „uruchomieniu” słoika.

Eksportowanie jako uruchamialny plik jar wykorzystuje zależności ze ścieżki budowania (prawy przycisk myszy na projekcie -> Ścieżka kompilacji -> Konfiguruj ścieżkę kompilacji ...). Gdy eksportujesz jako „zwykły” (niedziałający) plik jar, możesz wybrać dowolny plik w swoim projekcie (ach). Jeśli masz biblioteki w folderze projektu, możesz je dołączyć, ale na przykład zależności zewnętrzne, nie można dołączyć (w przypadku projektów maven szukaj tutaj ).


2
@Joost: sir, nie dostaję żadnej opcji pod nagłówkiem konfiguracji uruchamiania, gdy próbuję wyeksportować aplikację java jako plik jar, który można uruchomić. Co może być nie tak lub brakować?
Rat-a-tat-a-tat Ratatouille,

Eclipse wymienia main()metody, o których wie. Spróbuj raz uruchomić aplikację (kliknij projekt prawym przyciskiem myszy, Uruchom jako, Aplikacja Java), a następnie wyeksportuj ponownie.
Joost,

Nie ma to znaczenia dla tego pytania, ponieważ wyraźnie stwierdza Eclipse. Napisz nowe pytanie, jeśli nie możesz znaleźć odpowiedzi (która z pewnością jest już gdzieś na tej stronie)
Joost

1
Czy ktoś wie, jak to zrobić dla niedziałającego słoika w zaćmieniu? Nie ma opcji związanych z „wymaganymi bibliotekami”.
jb1

@ jb1 Czy kiedykolwiek to rozgryzłeś?
TheKingElessar

9

Możesz użyć Export-> Java-> Runnable Jar, aby utworzyć jar zawierający jego zależności

Alternatywnie możesz użyć wtyczki fatjar eclipse, aby połączyć słoiki razem


5

Możesz kliknąć projekt prawym przyciskiem myszy, kliknąć eksport, wpisać „jar”, ​​wybrać „Runnable JAR File Export”. Tam masz opcję „Wyodrębnij wymagane biblioteki do wygenerowanego pliku JAR”.


3

Osobiście,

Żadna z powyższych odpowiedzi nie działała dla mnie, nadal otrzymuję błędy NoClassDefFound (używam Maven do zależności). Moim rozwiązaniem było zbudowanie przy użyciu „mvn clean install” i użycie „[projekt] -jar-with-dependencies.jar”, ​​które tworzy to polecenie. Podobnie w Eclipse możesz kliknąć prawym przyciskiem myszy projekt -> Uruchom jako -> Maven Install i umieści słoiki w folderze docelowym.


2

Jeśli chcesz wyeksportować wszystkie pliki JAR projektu internetowego Java, otwórz najnowszy wygenerowany plik WAR za pomocą narzędzia ZIP (np. 7-Zip), przejdź do folderu / WEB-INF / lib /. Tutaj znajdziesz wszystkie pliki JAR potrzebne do tego projektu (wymienione w „Bibliotekach, do których istnieją odniesienia”).


0

Podczas eksportowania źródła do słoika upewnij się, że w opcjach wybrałeś opcję słoika, który można uruchomić. Następnie wybierz, czy chcesz spakować wszystkie pliki JAR zależności, czy po prostu dołączyć je bezpośrednio do pliku jar. To zależy od projektu, nad którym pracujesz.

Następnie uruchamiasz jar bezpośrednio przez java -jar example.jar.


0

Aby wygenerować plik jar w eclipse, kliknij prawym przyciskiem myszy projekt, dla którego chcesz wygenerować, wybierz Eksportuj> Java> Runnable Jar File,

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

Jego plik jar do tworzenia, który zawiera wszystkie zależności z Pom.xml, ale upewnij się, że problem z licencją, jeśli używasz zależności innej firmy dla swojej aplikacji.


0

Jeśli jest to samodzielny (metoda główna) projekt java, to Nie ma określonej ścieżki, umieść wszystkie pliki słoików w projekcie, a nie określoną ścieżkę, a następnie kliknij prawym przyciskiem myszy projekt -> eksport -> Runnable jar -> Wybierz konfigurację lunchu i obsługę biblioteki następnie wybierz opcję „Spakuj wymagane biblioteki do wygenerowanego pliku jar” -> Zakończ.

Lub

Jeśli masz projekt internetowy, umieść wszystkie pliki JAR w folderze web-inf / lib i wykonaj ten sam krok.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.