Eclipse - java.lang.ClassNotFoundException

95

Podczas próby uruchomienia mojego JUnit-Test z Eclipse otrzymuję „ClassNotFoundException”. Podczas uruchamiania "mvn test" z konsoli - wszystko działa dobrze. Ponadto w Eclipse nie są zgłaszane żadne problemy.

Struktura mojego projektu jest następująca:

  • projekt macierzysty (pom-opakowanie)
    • Projekt sieciowy (opakowanie wojenne - mój test JUnit jest tutaj)
    • Projekt Flex
    • Projekt konfiguracji

edit: Jak można nie znaleźć klasy? Jest to prosta aplikacja HelloWorld bez specjalnych bibliotek.

Oto konfiguracja uruchamiania mojego JUnita: tekst alternatywny http://www.walkner.biz/_temp/runconfig.png


Testclass (ale jak powiedziałem; nie działa też z prostym HelloWorld ...):

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import biz.prognoserechnung.domain.User;
import biz.prognoserechnung.domain.UserRepository;
import biz.prognoserechnung.domain.hibernate.UserHibernateDao;

public class UserDaoTest {
/**
 * the applicationcontext.
 */
private ApplicationContext ctx = null;

/**
 * the user itself.
 */
private User record = null;

/**
 * Interface for the user.
 */
private UserRepository dao = null;

@Before
public void setUp() throws Exception {
String[] paths = { "WEB-INF/applicationContext.xml" };
ctx = new ClassPathXmlApplicationContext(paths);
dao = (UserHibernateDao) ctx.getBean("userRepository");
}

@After
public void tearDown() throws Exception {
dao = null;
}

@Test
public final void testIsUser() throws Exception {
Assert.assertTrue(dao.isUser("John", "Doe"));
}

@Test
    public final void testIsNoUser() throws Exception {
    Assert.assertFalse(dao.isUser("not", "existing"));
        Assert.assertFalse(dao.isUser(null, null));
        Assert.assertFalse(dao.isUser("", ""));
    }
}
swalkner
źródło
3
Ten sam błąd pojawia się podczas próby uruchomienia prostej klasy HelloWorld bez dołączonego JUnit ... Dokładniej: java.lang.NoClassDefFoundError: HelloWorld Spowodowany przez: java.lang.ClassNotFoundException: HelloWorld
swalkner
ClassNotFoundException jest generowany podczas próby odzwierciedlenia klasy. NoClassDefFoundError jest generowany, gdy próbujesz użyć klasy w normalnym wywołaniu metody.
akf
czy możesz pokazać kod swojej klasy testowej?
akf
czy masz automatycznie włączoną lub wyłączoną kompilację?
Jon
build automatycznie jest włączony
swalkner

Odpowiedzi:

194

Z taką sytuacją spotkałem się kilka razy i po wielu próbach znalazłem rozwiązanie.

Sprawdź ścieżkę kompilacji projektu i włącz określone foldery wyjściowe dla każdego folderu. Przejdź jeden po drugim przez każdy folder źródłowy projektu i ustaw folder wyjściowy, którego będzie używał maven.

Na przykład projekt sieci Web src/main/javapowinien mieć target/classespod projektem sieciowym, klasy testowe powinny target/test-classesrównież znajdować się w projekcie internetowym i tak dalej.

Użycie tej konfiguracji umożliwi wykonywanie testów jednostkowych w środowisku Eclipse.

Jeszcze jedna rada, jeśli testy twojego projektu internetowego wymagają plików konfiguracyjnych znajdujących się w zasobach, pamiętaj, aby uwzględnić ten folder jako folder źródłowy i odpowiednio skonfigurować ścieżkę kompilacji.

Mam nadzieję, że to pomoże.

Carlos
źródło
1
Cześć Carlos, bardzo dziękuję za twoją radę. Ale to niestety nie pomogło. Dodałem / src / main / java (target / classes) i / src / test / java (target / test-classes) do folderów źródłowych oraz src / main / resources (applicationContext.xml, niektóre właściwości - target / classes) ). Ten sam problem - podczas uruchamiania mojego src / test / java / User replaceTest.java jako JUnit-test z Eclipse, pojawia się komunikat „Nie znaleziono klasy. Przynajmniej jest to trochę inne niż pierwotny komunikat o błędzie ...
swalkner
5
Jesteś na dobrej drodze. Sprawdź, czy klasa User replaceTest znajduje się w odpowiednim folderze wyjściowym w systemie plików (jak być może wiesz, Eclipse kompiluje wszystkie pliki źródłowe i umieszcza je m.in. w określonym folderze wyjściowym w celu w stanie uruchomić testy). Jeśli klasa nie pojawia się w folderze wyjściowym, sprawdź filtry włączania / wykluczania ścieżki kompilacji dla tego konkretnego folderu. Powodzenia.
Carlos
Dla mnie to nie rozwiązało problemu. Okazało się, że był to problem AspectJ. Jeśli używasz AspectJ, spróbuj usunąć i przeczytać możliwości AspectJ - zadziałało dla mnie
Stefan Haberl
1
Miał ten sam problem. Myślę, że to projekt zaćmienia - maven - problem z gitem. To tak naprawdę nie zawęża, ale wyczyszczenie wszystkich folderów metadanych (.project, cokolwiek ...), usunięcie projektu i ponowne zaimportowanie tylko jako projekt maven zadziałało. Znalazłem również coś, o czym nie wiedziałem, że eclipse-junit może zrobić: zaznaczenie metody testowej i wybranie RunAs-Junit uruchamia tylko tę konkretną metodę testową, a nie cały test! Nie więcej @Ignorewszędzie i GUI skrótów!
bgs
Miałem ten sam problem, po prostu użyłem Eclipse -> Project -> clean i zadziałało. Mvn clean nie działa.
Nutan
46

Podejście Carlosa pomogło! Eclipse - java.lang.ClassNotFoundException

Spróbuj sprawdzić ścieżkę klasy konfiguracji uruchamiania junit:

  1. Otwórz konfiguracje biegów
  2. Kliknij jUnit-Test, który chcesz uruchomić
  3. przejdź do zakładki ścieżki klas
  4. Spróbuj dodać folder (kliknij wpisy użytkownika, kliknij zaawansowane, kliknij dodaj foldery, kliknij OK i wyszukaj w folderze wyjściowym swoje klasy testowe (te, które znajdziesz w ścieżce budowania projektuproperties java, źródło))

pracuje dla mnie.

CoffeJunky
źródło
2
Czy to nie jest bardzo dziwne? U mnie zadziałało, ale dir klas docelowych jest częścią ścieżki klasy kompilacji dla projektu. Nie ma większego sensu, że musisz dodać określoną klasę.
Jose Muanis,
Nie sądzę, że ta akcja koniecznie dodaje potrzebny katalog tak bardzo, jak wyzwala coś do ponownego załadowania. Prawdopodobnie możesz natychmiast usunąć nowo dodany katalog po pomyślnym uruchomieniu i powinien działać normalnie. Również powyższy komentarz jest słuszny. Może również chcieć zagłosować za rekomendacją Carlosa, o której mowa.
awied
Znalazłem odpowiedź na inne pytanie SO, które jest bardziej pomocne w rozwiązaniu tego problemu: stackoverflow.com/a/5718520/901641
ArtOfWarfare,
16

Twoja ścieżka klas kompilacji jest poprawna, dlatego możesz ją skompilować. należy sprawdzić ścieżkę klas dla swojego JUnit. przejdź do menu Uruchom i wybierz „Otwórz okno dialogowe uruchamiania”. tam powinieneś zobaczyć drzewo po lewej stronie z JUnit jako opcją. otwórz ten węzeł i znajdź i wybierz swój test. w prawym okienku zobaczysz zakładkę ścieżki klas. sprawdź, czy Twoja klasa, której instancję test próbuje utworzyć, zostanie znaleziona.

edytować:

wydaje się, że jest to problem z maven i jego zachowaniem po zmianie wersji domyślnych folderów wyjściowych Eclipse. widziałem rozwiązania opisane gdzie

  • umieszczenie mavena w bootclasspath POWYŻEJ jre działa, lub
  • bieganie mvn clean testzałatwia sprawę lub
  • odświeżenie wszystkich projektów zaćmień, powodując przebudowę, rozwiązuje problem
  • przejście do projektu i wybranie Maven-> Update Configuration rozwiązuje problem

w przypadku pierwszych trzech pojawiły się powtarzające się doniesienia o problemie. ostatnia wygląda najlepiej, ale jeśli nie działa, wypróbuj inne.

tutaj i tutaj jest trochę informacji

akf
źródło
1
niestety, "Maven => Aktualizuj konfigurację" w ogóle nie rozwiązuje problemu ... jest odwrotnie; usuwa konfiguracje ścieżki budowania ... Czy to oznacza, że ​​inna konfiguracja jest zła?
swalkner
Dokładnie tak, jak wskazał @swalkner: Maven => Aktualizacja konfiguracji zepsuje konfigurację ścieżki budowania. Z jakiegoś powodu, który mi umyka, wtyczka ustawi filtry wykluczeń, które zawsze muszę usuwać ręcznie po uruchomieniu polecenia
Stefan Haberl
„przejdź do menu Uruchom i wybierz„ Otwórz okno dialogowe uruchamiania ”. Hę? Gdzie to jest?
Berit Larsen
4

Problem może obejmować brak pliku klasy w folderze kompilacji. Jednym z rozwiązań jest wyczyszczenie projektu i odbudowanie go.

EvilFish
źródło
4

Włączenie opcji [x] Użyj tymczasowego pliku JAR, aby określić ścieżkę klasy (aby uniknąć ograniczeń długości ścieżki klas) na karcie Ścieżka klasy w konfiguracji Uruchom, załatwiło sprawę .

Jeśli Twój projekt jest ogromny i masz wiele zależności od innych projektów siostrzanych i zależności Mavena, możesz napotkać ograniczenia długości ścieżki klas i wydaje się to być jedyne rozwiązanie (oprócz skrócenia katalogu lokalnego repozytorium Mavena (nasze już się zaczyna przy c: / m2)

wprowadź opis obrazu tutaj

user3018906
źródło
3

Jest tu wiele zawiłych sugestii.

Wielokrotnie napotkałem ten problem w projektach Maven po przeniesieniu zasobów za pomocą przeciągania i upuszczania lub przeprowadzaniu refaktoryzacji nazw klas.

Jeśli tak się stanie, po prostu skopiuj (nie przenoś) problemu Test Case ( .java) przez terminal / przeglądarkę plików do innej lokalizacji, right-click -> Deletew Eclipse i wybierz opcję usunięcia na dysku, gdy zostanie wybrana opcja, przenieś / skopiuj skopiowany plik do oryginalnej lokalizacji pliku, następnie wybierz swój projekt w Eclipse i naciśnij F5, aby odświeżyć zasoby.

Jest to szybkie i łatwe do zrobienia i za każdym razem rozwiązuje problem na stałe.

KomodoDave
źródło
Kusi mnie, by zapytać, czy to rozwiązało twój problem na stałe , czy za każdym razem ... ale rozumiem, co masz na myśli, i, zdumiewające, to załatwiło sprawę.
Amos M. Carpenter,
3

Miałem dokładnie ten sam problem, ale rozgryzłem go! Przejdź do pliku projektu i kliknij go prawym przyciskiem myszy, a następnie kliknij Refreshlub naciśnij klawisz F5. Następnie spróbuj go uruchomić. Jeśli nadal nie działa, po prostu o tym zapomnij, ponieważ miałem DOKŁADNY ten sam problem, a to oznacza po prostu, że twoja wersja Eclipse to śmieć.

Starfox275
źródło
2

Sachin ma rację: Nawet przy poprawnej ścieżce klasy, karta problemów pokaże, że jakaś zależność lub zasób / projekt zawiera błąd, który należy naprawić, aby maven mógł automatycznie budować i tworzyć klasy, gdy tworzysz lub wprowadzasz zmiany w klasie testowej .

"Cześć,

To bardzo stary lipiec (który rok), ale miałem ten sam problem.

Rzeczywisty problem ujawnił, że eclipse nie był w stanie wygenerować pliku klasy dla pliku java, ścieżka klas była prawidłowa.

Zobacz kartę problemów i sprawdź, czy w Twoim projekcie brakuje czegoś / pliku. możesz utworzyć nowy projekt i dodawać pliki jeden po drugim i budować je, aż przestanie kompilować i tworzyć klasy (sprawdź obszar roboczy / proj / bin / package / folder dla klas)

jego dziwne, ale prawdziwe, ecplise nie powiodło się podczas kompilacji, ponieważ 4 z 20 plików java używało jednego obrazu, którego brakowało. w wyniku czego żaden plik java nie został skompilowany.

CLASSPATH nie jest tutaj problemem ”.

kisna
źródło
2

Mieliśmy dokładny wyjątek (używając SpringSource Tools, tomcat, na Win7), a przyczyną było to, że zmieniliśmy nazwę pliku (zmieniliśmy nazwę pliku) z SubDomain.java na Subdomain.java (D vs d) i w jakiś sposób zderzyło się, chociaż SpringSource było pokazując nową nazwę Subdomain.java. Rozwiązaniem było usunięcie pliku (przez SpringSource) i utworzenie go ponownie pod nazwą Subdomain.java i skopiowanie i wklejenie jego poprzedniej zawartości. Proste.

Romie
źródło
Zawsze uruchamiałem przypadki testowe junit, dopóki nie uruchomiłem programu, który sprawdza zgodność komputera przed aktualizacją systemu Windows. Wydaje się, że coś zepsuło, nie mogę ponownie uruchomić przypadków testowych JUnit. (i wszystkie istniejące odpowiedzi nie działają)
CoffeDeveloper
2

Rozwiązuję tę ścieżkę Bulit ---> biblioteki ---> dodaj bibliotekę ---> Junit sprawdź junit4

wanfke
źródło
1

Kliknij project->properties->Java build path->Source i sprawdź, czy każdy srcfolder jest nadal ważny, istnieje lub został niedawno usunięty. Popraw brakującą ścieżkę lub nieprawidłową ścieżkę, a następnie odbuduj i uruchom test. To rozwiąże problem.

nieznane
źródło
1

Wszystko, co zrobiłem, to Właściwości -> Ścieżka budowania Java -> Zamów i eksportuj -> Włączone wszystkie niezaznaczone pola -> przeniosłem Junita na samą górę

Siddharth
źródło
1

Wypróbowany

Link : [here][1]

Open your run configurations
Click on the jUnit-Test you want to start
go to the classpath tab
Try to add a folder (click on user entries, click on advanced, click on add folders,click on ok and search the outputfolder for your test classes(those you find under projektproperties java build path, source))

pracował po

Cykl życia Maven 2 >> test

user2246725
źródło
1

Wypróbowałem wszystkie rozwiązania na tej stronie: odśwież projekt, przebuduj, wyczyść wszystkie projekty, zrestartuj Eclipse, ponownie zaimportuj (nawet) projekty, przebuduj maven i odśwież. Nic nie działało. Udało się skopiować klasę do nowej nazwy, która działa dobrze - dziwaczna, ale prawdziwa.

Po pewnym czasie znosząc to, po prostu naprawiłem to przez:

  1. Za pośrednictwem Runmenu
  2. Wybierz Run Configurations
  3. Wybierz konfigurację uruchamiania, która jest skojarzona z testem jednostkowym.
  4. Usunięcie wpisu z pola Run Configurationprzez naciśnięcie klawisza Delete lub kliknięcie czerwonego X.

Coś musiało zostać schrzanione z konfiguracją uruchamiania w pamięci podręcznej.

Szary
źródło
1
Po zmarnowaniu zbyt wiele czasu wykonałem powyższe kroki. Następnie podjąłem heroiczną decyzję o usunięciu wszystkich konfiguracji uruchamiania testów i teraz żadnego z moich testów nie można znaleźć w ścieżce klas, mimo że nowa konfiguracja uruchamiania wyraźnie pokazuje w niej projekt (z zależnościami maven pod spodem). Ciągle zapominam, jak kruche jest zaćmienie. Po tym nie można było uruchomić żadnych testów z eclipse (zanim mogłem wybrać konkretny test - ok). W końcu wypróbowałem sugestię KomodoDave poniżej. To naprawiło rzeczy ... niesamowite pętle, przez które musisz przeskoczyć z tym ide (najnowszym z serii ..)
justin
1

Usunięcie projektu z zaćmienia (nie z dysku twardego), które w pewnym sensie oczyszcza obszar roboczy i ponownie importuje projekt do zaćmienia, działało dla mnie.

Hari Hara Earlapati
źródło
1

Zwykle ten problem występuje, gdy javanarzędzie aplikacji Java nie może znaleźć pliku klasy.

Głównie w projekcie maven widzimy ten problem, ponieważ problem z synchronizacją Eclipse-Maven . Aby rozwiązać ten problem: Maven-> Aktualizuj konfigurację

Premraj
źródło
0

Czy próbowałeś kliknąć prawym przyciskiem myszy katalog główny swojego projektu, wybrać „właściwości” i upewnić się, że CLASSPATH jest poprawny? Jeśli dobrze pamiętam, tak to się robi.

Coś na temat sposobu, w jaki Eclipse uruchamia testy jednostkowe, które wymagają dodania junit JAR do środowiska wykonawczego CLASSPATH w specjalny sposób?

Używam IntelliJ, więc nie mam tych problemów.

Sam bym sprawdził Eclipse, ale wolę nie mieć go na pulpicie.

duffymo
źródło
okej, bez prowadzenia dyskusji o Eclipse vs. IntelliJ; Chciałbym, żeby działał w Eclipse ... i sprawdziłem ścieżkę budowania Java - JDK Java tam jest i nie potrzebuję nic więcej do mojego przykładu HelloWorld ... Myślę, że ma to coś wspólnego z „foldery źródłowe na ścieżce kompilacji” ... Ustawiłem je na folder, w którym zaczyna się mój pakiet ... Zakładam, że to prawda.
swalkner
Potrzebujesz czegoś poza JDK - to jest ścieżka do HelloWorld.class, prawda? „foldery źródłowe na ścieżce kompilacji” - brzmi lepiej. Nie musisz zakładać, bądź eksperymentatorem i spróbuj. Eclipse powie ci, czy masz rację.
duffymo
0

Hmm, wygląda trochę dziwnie, spróbuj uruchomić go z następującą adnotacją na szczycie klasy:

@RunWith(SpringJUnit4ClassRunner.class)
public class UserDaoTest {
}

i daj mi znać, jak sobie z tym radzisz.

Sprawdź, czy masz również włączoną automatycznie kompilację. Jeśli chcesz się upewnić, że klasy testowe są poprawnie kompilowane, wyczyść folder docelowy Maven (i każdy folder bin, którego może używać Eclipse). Czy używasz również m2eclipse, ponieważ wydaje mi się to trochę problematyczne.

Jon
źródło
bardzo dziękuję za odpowiedź, ale mimo wszystko: to też nie działa; najpierw muszę załączyć spring-test.jar, potem inna zależność nie jest wypełniona. nie rozumiem, dlaczego nie działa z prostą klasą helloworld w tym samym pakiecie. i tam, nie potrzebuję "hackowania", takiego jak sugerowany przez ciebie ... coś musi być nie tak ze "ścieżką klasy" lub czymś podobnym, ale nie wiem, gdzie / co mam sprawdzić ...
swalkner
0

Rozwiązanie mojego problemu, które było podobne: biblioteki były nieprawidłowe. Jeśli zajrzysz do pliku .classpath projektu, zobaczysz tagi classpathentry z kluczem / wartością kind = "lib". Niektóre z moich były błędne.

Nie odkryłem tego, dopóki nie wyłączyłem ustawień walidacji. Oznacza to, że w plikach JSP było tak wiele błędów, itp., Że błędy ścieżki klas nie były widoczne (lub być może nawet się pojawiały). W rezultacie nic nie było kompilowane do docelowych folderów wyjściowych, ale żadnych pomocnych błędów wyjaśniających, dlaczego.

Mikrofon
źródło
0

Wskaż poprawne JDK w Windows> Preferencje> Java> Zainstalowane środowisko JRE.

Nie wskazuj na jre, wskaż właściwy JDK. Wskazałem na JDK 1.6U29 i odświeżyłem projekt.

Odtąd problem zniknął, a jUnit Tests działa poprawnie.

Dzięki,
-Tapas

Tapas Adhikary
źródło
0

Ostatnio napotkałem ten sam błąd w Eclipse, tj. Eclipse IDE nie może znaleźć klasy testowej Unit, niezależnie od tego, jak zmieniam konfiguracje. Ucząc się na podstawie poprzednich postów tutaj i na innych stronach internetowych, dwukrotnie sprawdziłem i potrójnie sprawdziłem ścieżkę klas i informacje o źródle oraz poruszałem się w górę iw dół folderu źródłowego i bibliotek, zarówno w „Uruchom konfigurację”, jak i „Ścieżce budowania Java „config windows”, wyczyściłem też projekt i przebudowałem go, ale żadna z tych sztuczek nie działa. Konkretny projekt Java jest starym projektem skompilowanym przez ANT i zawiera wiele plików JAR w bibliotece Eclipse.

Następnie zmieniłem klasę testu jednostkowego, aby dodać metodę main () i kliknąłem ją prawym przyciskiem myszy na „Uruchom jako” aplikację Java zamiast testu JUnit i nagle Eclipse wydaje się budzić i poprawnie identyfikować klasę. Następnie przełączyłem go z powrotem na aplikację do testów jednostkowych i nadal działa.

Wydaje się, że jest to błąd w Eclipse. Domyślam się, że duża liczba bibliotek (> 260) może zmylić zdolność maszyny JVM do zlokalizowania mojej klasy JUnit.

Hongyu Zhang
źródło
0

Trafił mnie również ten problem i udało mi się znaleźć wystarczające rozwiązanie dla mojego przypadku. Jeśli Twój projekt Eclipse ma plik .classpath w katalogu głównym projektu (zobacz go w widoku Nawigatora zamiast w widoku Eksploratora pakietów), upewnij się, że uwierzytelnianie klas Maven pojawia się przed uwierzytelnianiem klas kontenera JRE.

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
</classpath>

Jeśli Twój projekt nie ma pliku .classpath, możesz edytować ścieżkę budowania Java projektu, aby przełączyć kolejność i eksport. Jeśli Twój projekt zawiera plik .classpath i zmienisz kolejność tylko w ścieżce budowania Java, zobaczysz, że nie ma to wpływu na kolejność i problem będzie nadal występował.

A projekt-> sprzątanie nigdy nie zaszkodzi po wprowadzeniu zmiany.

cmh
źródło
0

Upewnij się, że konfiguracja uruchamiania testu NIE zawiera następujących wierszy LUB spróbuj włączyć automatyczne zarządzanie zależnościami Maven.

<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.maven.ide.eclipse.launchconfig.classpathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.maven.ide.eclipse.launchconfig.sourcepathProvider"/>
thSoft
źródło
0

Wypróbowałem wszystko, co przeczytałem w tym długim poście i, co niewiarygodne, zadziałało dla mnie, zamiast klikania klasy testowej i wybierania Run as JUnit test, klikania metody testowej i uruchamiania jako JUnit test. Nie mam pojęcia dlaczego

snakedog
źródło
0

Test JUnit z wnętrza zaćmienia dał mi również NoClassDefFoundError. Uruchomienie „mvn clean test” z wiersza poleceń dało mi następujący błąd na kilku słoikach: nieprawidłowy nagłówek LOC (zły podpis) Usunięcie tych plików JAR z lokalnego repozytorium m2 i uruchomienie „mvn clean test” ponownie rozwiązało mój problem.

RutgerDOW
źródło
0

Miałem ten sam problem. Wszystko co zrobiłem to

ja). Wygenerowano artefakty Eclipse

mvn clean eclipse:eclipse

ii). Odśwież projekt i ponownie uruchom test junit. Powinno działać dobrze.

Vikram
źródło
0

Ponadto PODWÓJNIE SPRAWDZIĆ okno dialogowe Eclipse „Web Deployment Assembly”.

Można to znaleźć: Właściwości projektu-> Zespół wdrożeniowy.

Niedawno miałem wtyczkę eclipse modyfikującą jeden z moich projektów internetowych, która dodała ~ tajemniczo ~ dodała katalogi testowe mavena / src / test / java, / src / test / resources do zestawu wdrożeniowego. UGGGG !!!

Dlatego mój projekt działał dobrze, gdy zbudowałem i wdrożyłem tylko zwykłego mavena do tomcat, bez wyjątków ClassNotFound ... Jednak kiedy wykonałem wdrożenie przez Eclipse, Whammo !! Zaczynam otrzymywać ClassNotFoundExceptions, ponieważ wdrażany jest kod TestCode.

Eric

Eric Manley
źródło
0

Oznacza to, że Twój pom.xml zawiera nierozwiązane problemy. Otwórz widok problemów rozwiąż odpowiednio. Wtedy będzie można pomyślnie uruchomić przypadki testowe bez napotkania wyjątku nie znalezionego klasy.

Raju Rao
źródło
0

Zmiana kolejności artefaktów ścieżki klas w ścieżce budowania języka Java rozwiązała problem.

  1. Kliknij prawym przyciskiem myszy projekt i przejdź do ścieżki tworzenia projektu.
  2. Przejdź do zakładki Order and Export i przenieś bibliotekę systemową JRE za źródła.

To powinno to naprawić.

Sai Killi
źródło