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?

Ghanta Sairam
źródło
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 ).

Joost
źródło
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

Attila
źródło
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”.

maerch
źródło
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.

SMKS
źródło
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”).

Peter Saitz
źródło
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.

Charan Raj
źródło
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.

Rohit
źródło
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.

JitenS
źródło