2013-02-04 12 views
9

Podczas przetwarzania chciałbym zaimportować bibliotekę, którą napisałem w Javie, która owija się wokół zewnętrznej biblioteki (plik .jar).Jak eksportować projekt Eclipse z zewnętrznymi zależnościami Jar?

Przetwarzanie wydaje się zaimportować moją własną bibliotekę, ale kiedy wywołuję konstruktora (który odwołuje się do niektórych klas w bibliotece zewnętrznej), otrzymuję java.lang.NoClassDefFoundError w konsoli GUI przetwarzania.

Jeśli zamiast włączania zewnętrznego pliku .jar w mojej ścieżce budowania Eclipse, używam rzeczywistego kodu źródłowego biblioteki i eksportuję wszystko, przetwarzanie nie narzeka.

W jaki sposób mogę spakować projekt, aby nie zawierał on całego kodu źródłowego biblioteki (a zamiast tego tylko zawierał plik .jar) w moim projekcie Eclipse?


Aktualizacja: Zgodnie z sugestią N.L.telaviv „s, wybrałem wyeksportować jako Runnable JAR. Pracowałem dla mnie, aby wybrać opcję "Skopiuj wymagane biblioteki do podkatalogu obok wygenerowanego pliku JAR". Tutaj jest tworzony inny folder obok miejsca, w którym znajduje się plik .jar zawierający odniesienia do bibliotek .jar.

Aktualizacja2: Inną opcją, która działa, jest "Wyodrębnij wymagane biblioteki do wygenerowanego pliku JAR". Dzięki temu JAR może uzyskać dostęp do referencji wewnętrznie. Wyglądało na to, że to samo działałoby z sugestią N.L.telaviva, ale nie wydaje się, żeby tak było. Wybierz tę opcję, jeśli nie chcesz mieć żadnych dodatkowych plików. Zauważysz, że jeśli przeglądasz plik .JAR, biblioteka zewnętrzna znajduje się w oddzielnym folderze pakietów.

+0

Witam, mam wybrałem te wszystkie opcje, ale nikt nie pracował dla mnie. Czy możesz mi powiedzieć, jaki będzie problem? Dziękuję Ci! –

Odpowiedz

6

Skorzystaj z opcji eksportu pliku Runableble JAR.

Kliknij na projekcie - Eksport - java- plików runnable słoik - wybierz opcję spakowanie wymaga bibliotek w słoiku

+0

Po prostu próbowałem, bez powodzenia. Jedyną różnicą było to, że wraz z importowaniem MyProjectPackage. *, Processing importuje również org.eclipse.jdt.internal.jarinjarloader. * – funseiki

+0

sprawdź, czy definicja ścieżki klasy w MANIFEST zawiera każdy JAR w niej – Nimrod007

+0

Czy odnosisz się do .classpath plik? Jeśli tak jest, to ma plik .jar. Odkryłem też, że zamiast wybierać pakowanie do wygenerowanego słoika, jeśli wybiorę "Kopiuj wymagane biblioteki do podkatalogu obok wygenerowanego pliku JAR", wydaje się, że działa. – funseiki

Powiązane problemy