Eclipse - java.lang.ClassNotFoundException

95

Saat mencoba memulai JUnit-Test saya dari Eclipse, saya mendapatkan "ClassNotFoundException". Saat menjalankan "uji mvn" dari konsol - semuanya bekerja dengan baik. Selain itu, tidak ada masalah yang dilaporkan di Eclipse.

Struktur proyek saya adalah sebagai berikut:

  • proyek induk (pom-packaging)
    • Proyek web (war-packaging - JUnit-test saya ada di sini)
    • Proyek fleksibel
    • Proyek konfigurasi

edit: Bagaimana kelas tidak ditemukan? Ini adalah Aplikasi-HelloWorld sederhana tanpa perpustakaan khusus.

Berikut konfigurasi run JUnit saya: teks alt http://www.walkner.biz/_temp/runconfig.png


Testclass (tapi seperti yang saya katakan; itu juga tidak berfungsi dengan HelloWorld sederhana ...):

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
sumber
3
Saya mendapatkan kesalahan yang sama ketika mencoba menjalankan kelas HelloWorld sederhana tanpa JUnit yang disertakan ... Lebih tepatnya: java.lang.NoClassDefFoundError: HelloWorld Disebabkan oleh: java.lang.ClassNotFoundException: HelloWorld
swalkner
ClassNotFoundException muncul saat mencoba merefleksikan kelas. NoClassDefFoundError muncul saat Anda mencoba menggunakan kelas dalam panggilan metode normal.
akf
dapatkah Anda menunjukkan kode untuk kelas pengujian Anda?
akf
apakah Anda telah mengaktifkan atau menonaktifkan build secara otomatis?
Jon
membangun secara otomatis diaktifkan
swalkner

Jawaban:

194

Saya telah menjumpai situasi itu beberapa kali dan, setelah banyak upaya, saya menemukan solusinya.

Periksa jalur build proyek Anda dan aktifkan folder keluaran tertentu untuk setiap folder. Pergi satu per satu melalui setiap folder sumber proyek Anda dan setel folder keluaran yang akan digunakan maven.

Misalnya, proyek web Anda src/main/javaharus target/classesberada di bawah proyek web, kelas uji harus target/test-classesjuga di bawah proyek web dan sebagainya.

Menggunakan konfigurasi ini akan memungkinkan Anda untuk menjalankan pengujian unit di gerhana.

Satu saran lagi, jika pengujian proyek web Anda memerlukan beberapa file konfigurasi yang ada di bawah sumber daya, pastikan untuk menyertakan folder itu sebagai folder sumber dan untuk membuat konfigurasi jalur-build yang tepat.

Semoga membantu.

Carlos
sumber
1
Halo Carlos, terima kasih banyak atas saran Anda. Tapi sayangnya itu tidak membantu. Saya menambahkan / src / main / java (target / class) dan / src / test / java (target / test-class) ke folder sumber serta src / main / resources (applicationContext.xml, beberapa properti - target / class ). Masalah yang sama - ketika memulai src / test / java / UserDaoTest.java sebagai JUnit-test dari Eclipse, saya mendapatkan "Class not found UserDaoTest java.lang.ClassNotFoundException: UserDaoTest". Setidaknya, itu sedikit berbeda dari pesan kesalahan aslinya ...
swalkner
5
Anda berada di jalan yang benar, periksa apakah kelas UserDaoTest ada di folder output yang sesuai dalam sistem file Anda (Seperti yang Anda ketahui, Eclipse tidak mengkompilasi semua file sumber Anda dan menempatkannya ke dalam folder output yang ditentukan, antara lain, agar mampu meluncurkan tes). Jika kelas tidak muncul di folder keluaran, periksa filter penyertaan / pengecualian dari jalur build untuk folder khusus ini. Semoga berhasil.
Carlos
Bagi saya ini tidak menyelesaikan masalah. Ternyata itu adalah masalah AspectJ. Jika Anda menggunakan AspectJ, coba hapus dan baca kapabilitas AspectJ - berhasil untuk saya
Stefan Haberl
1
Punya masalah yang sama. Saya pikir ini adalah proyek gerhana - masalah maven - git. Itu tidak benar-benar mempersempitnya tetapi menghapus semua folder metadata (.project, .whatever ...), menghapus proyek dan mengimpor kembali hanya karena proyek maven berhasil untuk saya. Saya juga menemukan sesuatu yang tidak diketahui eclipse-junit dapat melakukannya: menyoroti metode pengujian dan memilih RunAs-Junit hanya menjalankan metode pengujian tertentu, bukan seluruh pengujian! Tidak ada lagi di @Ignoresemua tempat dan pintasan gui!
bgs
Menghadapi masalah yang sama, saya hanya menggunakan Eclipse -> Project -> clean dan berhasil. Mvn bersih tidak berfungsi.
Nutan
46

Pendekatan Carlos membantu! Eclipse - java.lang.ClassNotFoundException

Coba periksa classpath dari konfigurasi junit run:

  1. Buka konfigurasi run Anda
  2. Klik pada jUnit-Test yang ingin Anda mulai
  3. buka tab classpath
  4. Cobalah untuk menambahkan folder (klik pada entri pengguna, klik lanjutan, klik tambahkan folder, klik ok dan cari folder keluaran untuk kelas uji Anda (yang Anda temukan di bawah projektproperties jalur pembuatan java, sumber))

bekerja untuk saya.

CoffeJunky
sumber
2
Bukankah ini sangat aneh? Ini berhasil untuk saya, tetapi dir kelas target adalah bagian dari jalur kelas build untuk proyek tersebut. Tidak masuk akal jika Anda perlu menambahkan kelas tertentu.
Jose Muanis
Saya rasa tindakan ini tidak perlu menambahkan direktori yang dibutuhkan sebanyak memicu sesuatu untuk dimuat ulang. Anda mungkin dapat segera menghapus direktori yang baru ditambahkan setelah berhasil dijalankan dan itu akan berfungsi seperti biasa. Juga, komentar di atas benar. Mungkin ingin memuji pujian yang direferensikan dari Carlos juga.
kagum
Saya menemukan jawaban pada pertanyaan SO lain untuk lebih membantu dengan masalah ini: stackoverflow.com/a/5718520/901641
ArtOfWarfare
16

classpath build Anda benar, itulah sebabnya Anda dapat mengompilasi. jalur kelas untuk JUnit Anda perlu diperiksa. buka menu Run dan pilih 'dialog run terbuka.' di sana Anda akan melihat pohon di sebelah kiri dengan JUnit sebagai opsi. buka node itu dan temukan dan pilih pengujian Anda. di panel kanan Anda akan melihat tab untuk classpath. lihat untuk memastikan bahwa kelas Anda yang coba dibuat instance-nya akan ditemukan.

edit:

ini tampaknya menjadi masalah dengan maven dan perilakunya setelah rilis mengubah folder keluaran Eclipse default. saya telah melihat solusi yang dijelaskan di mana

  • menempatkan maven ke jalur bootclass DI ATAS karya jre, atau
  • menjalankan mvn clean testtrik atau
  • menyegarkan semua proyek gerhana Anda, membuat pembangunan kembali memperbaiki masalah
  • pergi ke proyek Anda dan memilih Maven-> Perbarui Konfigurasi memecahkan masalah

dengan tiga kasus pertama, ada laporan tentang masalah yang berulang. yang terakhir terlihat paling baik bagi saya, tetapi jika tidak berhasil, coba yang lain.

di sini dan di sini adalah beberapa info

akf
sumber
1
sayangnya, "Maven => Update Configuration" tidak menyelesaikan masalah sama sekali ... yang sebaliknya benar; itu menghapus konfigurasi jalur build ... Atau apakah itu berarti bahwa beberapa konfigurasi lain buruk?
swalkner
Persis seperti yang ditunjukkan oleh @swalkner: Maven => Konfigurasi pembaruan akan merusak konfigurasi jalur build. Untuk beberapa alasan yang luput dari saya, plugin akan mengatur filter pengecualian yang selalu harus saya hapus secara manual setelah menjalankan perintah
Stefan Haberl
"buka menu Run dan pilih 'dialog run terbuka'. Hah ?? Dimana itu?
Berit Larsen
4

Masalahnya mungkin kehilangan file kelas di folder build Anda. Salah satu solusinya adalah membersihkan proyek dan membangunnya kembali.

EvilFish
sumber
4

Mengaktifkan [x] Gunakan JAR sementara untuk menentukan jalur kelas (untuk menghindari batasan panjang jalur kelas ) di dalam tab jalur kelas dari konfigurasi Jalankan melakukan trik untuk saya.

Jika proyek Anda besar dan Anda memiliki banyak ketergantungan dari proyek saudara lain dan ketergantungan maven, Anda mungkin mencapai batasan panjang jalur kelas dan ini tampaknya satu-satunya solusi (selain membuat direktori untuk Anda repo maven lokal lebih pendek (milik kami sudah dimulai) di c: / m2)

masukkan deskripsi gambar di sini

pengguna3018906
sumber
3

Ada banyak saran yang berbelit-belit di sini.

Saya telah mengalami masalah ini beberapa kali dengan proyek Maven setelah memindahkan sumber daya dengan drag 'n' drop, atau melakukan refactoring nama kelas.

Jika ini terjadi, cukup salin (jangan pindahkan) masalah Test Case ( .java) melalui terminal / browser file ke lokasi lain, right-click -> Deletedi Eclipse dan pilih untuk menghapus pada disk ketika diberi opsi, pindahkan / salin file yang disalin ke lokasi file asli, kemudian pilih proyek Anda di Eclipse dan tekan F5 untuk menyegarkan sumber daya.

Ini cepat dan mudah dilakukan, dan selalu memperbaiki masalah saya secara permanen.

KomodoDave
sumber
Saya tergoda untuk bertanya apakah itu memperbaiki masalah Anda secara permanen , atau setiap kali ... tetapi saya mengerti apa yang Anda maksud, dan, luar biasa, ini berhasil bagi saya.
Amos M. Carpenter
3

Saya memiliki masalah yang persis sama tetapi saya menemukan jawabannya! Buka file proyek Anda dan klik kanan padanya, lalu klik Refreshatau tekan F5. Kemudian coba dan jalankan. Jika masih tidak berhasil maka lupakan saja, karena saya memiliki masalah yang sama PERSIS dan itu berarti versi Eclipse Anda adalah sampah.

Starfox275
sumber
2

Ini adalah solusi saya untuk masalah tersebut. Tentu saja, banyak hal yang dapat menyebabkannya terjadi. Bagi saya, Maven2 (bukan plugin untuk Eclipse) mengatur profil gerhana untuk menggunakan pembangun yang berbeda (aspekJ) tetapi saya tidak memiliki plugin di eclipse./

http://rbtech.blogspot.com/2009/09/eclipse-galileo-javalangclassnotfoundex.html

Bersulang Ramon Buckland


sumber
2

Hak Sachin: Bahkan dengan jalur kelas yang benar, tab masalah akan menunjukkan bahwa beberapa ketergantungan atau Sumber daya / proyek memiliki kesalahan yang perlu diperbaiki agar maven secara otomatis membangun dan membuat kelas ketika Anda membuat atau membuat perubahan dalam kelas pengujian Anda .

"Hai,

Ini sangat tua Juli (tahun yang mana) tetapi saya memiliki masalah yang sama.

Masalah sebenarnya menemukan bahwa eclipse tidak dapat menghasilkan file kelas untuk file java, classpath benar.

Lihat tab masalah dan periksa apakah proyek Anda kehilangan sesuatu / file. Anda dapat membuat proyek baru dan menambahkan file satu per satu dan membangunnya sampai berhenti mengkompilasi dan membuat kelas (periksa ruang kerja / proj / bin / package / folder untuk kelas)

itu aneh tapi benar, ecplise gagal memenuhi karena 4 dari 20 file java menggunakan satu gambar yang hilang. dan sebagai hasilnya tidak ada file java yang dikompilasi.

CLASSPATH tidak menjadi masalah di sini. "

Kisna
sumber
2

Kami memiliki pengecualian yang tepat (menggunakan SpringSource Tools, tomcat, di Win7) dan penyebabnya adalah kami telah memperbarui nama file (mengganti nama file) dari SubDomain.java menjadi Subdomain.java (D vs d) dan entah bagaimana bertabrakan meskipun SpringSource menampilkan nama baru Subdomain.java. Solusinya adalah menghapus file (melalui SpringSource) dan membuatnya lagi dengan nama Subdomain.java dan menyalin-tempel konten sebelumnya. Sederhana seperti itu.

Romie
sumber
Saya selalu menjalankan kasus uji junit, sampai saya menjalankan program yang memeriksa kompatibilitas PC sebelum memutakhirkan windows. Tampaknya perlu merusak sesuatu, saya tidak dapat menjalankan kasus uji JUnit lagi. (dan semua jawaban yang ada tidak berfungsi)
CoffeDeveloper
2

Saya menyelesaikan jalur Bulit itu ---> perpustakaan ---> tambahkan perpustakaan ---> Junit, periksa junit4

wanfke
sumber
1

klik project->properties->Java build path->Sourcedan periksa setiap srcfolder apakah masih ada atau baru dihapus. Perbaiki jalur yang hilang atau jalur yang salah dan buat kembali dan jalankan pengujian. Ini akan memperbaiki masalah.

iunknown
sumber
1

Yang saya lakukan hanyalah Properties -> Java Build Path -> Order and Export -> Aktifkan semua kotak yang tidak dicentang -> pindahkan Junit ke atas

Siddharth
sumber
1

Mencoba

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))

bekerja setelah

Tes Maven 2 LifeCycle >>

pengguna2246725
sumber
1

Saya telah mencoba semua solusi di halaman ini: menyegarkan proyek, membangun kembali, semua proyek bersih, memulai ulang Eclipse, mengimpor ulang (bahkan) proyek, membangun kembali maven dan menyegarkan. Tidak ada yang berhasil. Apa yang melakukan pekerjaan yang menyalin kelas untuk sebuah nama baru yang berjalan dengan baik - aneh tapi benar.

Setelah bertahan dengan ini untuk beberapa waktu, saya hanya memperbaikinya dengan:

  1. Melalui Run menu
  2. Pilih Run Configurations
  3. Pilih konfigurasi proses yang terkait dengan pengujian unit Anda.
  4. Menghapus entri dari Run Configurationdengan menekan delete atau mengklik X merah.

Sesuatu pasti telah kacau dengan konfigurasi proses yang di-cache.

Abu-abu
sumber
1
Setelah terlalu banyak waktu yang terbuang, saya akhirnya melakukan langkah-langkah di atas. Saya kemudian mengambil keputusan heroik untuk menghapus semua konfigurasi pengujian yang dijalankan dan sekarang tidak ada pengujian saya yang dapat ditemukan di classpath meskipun konfigurasi proses baru dengan jelas menunjukkan proyek di dalamnya (dengan dependensi maven di bawahnya). Saya selalu lupa betapa rapuhnya gerhana. Setelah itu tidak ada tes yang bisa dijalankan dengan gerhana (sebelum saya bisa memilih tes tertentu - ok). Akhirnya, saya mencoba saran KomodoDave di bawah ini. Bahwa hal-hal tetap ... menakjubkan loop Anda harus melompat melalui dengan ide ini (yang terbaru dari seri ..)
justin
1

Menghapus proyek dari gerhana (Bukan dari hard disk) yang dengan cara membersihkan ruang kerja dan mengimpor kembali proyek ke gerhana kembali berhasil untuk saya.

Hari Hara Earlapati
sumber
1

Biasanya masalah ini terjadi saat menjalankan javaalat aplikasi java tidak dapat menemukan file kelas.

Sebagian besar di proyek maven kami melihat masalah ini karena masalah sinkronisasi Eclipse-Maven . Untuk mengatasi masalah ini: Maven-> Perbarui Konfigurasi

Premraj
sumber
0

Sudahkah Anda mencoba mengklik kanan pada root proyek Anda, memilih "properties", dan memastikan bahwa CLASSPATH sudah benar? Jika saya mengingatnya dengan benar, begitulah cara Anda melakukannya.

Apa saja tentang cara Eclipse menjalankan pengujian unit yang mengharuskan Anda menambahkan junit JAR ke runtime CLASSPATH dengan cara khusus?

Saya menggunakan IntelliJ, jadi saya tidak memiliki masalah ini.

Saya akan memeriksa Eclipse sendiri, tetapi saya lebih suka tidak memilikinya di desktop saya.

duffymo
sumber
oke, tanpa mengarah ke diskusi Gerhana vs. IntelliJ; Saya ingin menjalankannya di Eclipse ... dan saya memeriksa Java Build Path - Java JDK ada di sana, dan saya tidak memerlukan hal lain untuk contoh HelloWorld saya ... Saya pikir itu ada hubungannya dengan 'folder sumber di jalur pembuatan' ... Saya mengaturnya ke folder tempat paket saya dimulai ... Saya berasumsi itu benar.
swalkner
Anda memang membutuhkan sesuatu selain JDK - itu adalah jalur ke HelloWorld.class, bukan? "folder sumber di jalur build" - terdengar lebih baik. Tidak perlu berasumsi, jadilah seorang eksperimentalis dan cobalah. Eclipse akan memberi tahu Anda jika Anda benar.
duffymo
0

Hmm, terlihat agak aneh, coba jalankan dengan anotasi berikut di bagian atas kelas:

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

dan beri tahu saya bagaimana Anda melakukannya.

Periksa apakah Anda juga telah mengaktifkan build secara otomatis. Jika Anda ingin memastikan bahwa kelas pengujian Anda sedang dikompilasi dengan benar, bersihkan folder target Maven (dan folder bin apa pun yang mungkin digunakan Eclipse). Apakah Anda juga menggunakan m2eclipse, karena menurut saya ini sedikit bermasalah.

Jon
sumber
terima kasih banyak atas jawaban Anda, namun demikian: tidak berhasil juga; pertama, saya harus menyertakan spring-test.jar, kemudian dependensi lain tidak terpenuhi. saya tidak mengerti mengapa itu tidak bekerja dengan kelas helloworld sederhana dalam paket yang sama. dan di sana, saya tidak memerlukan "retas" seperti yang Anda sarankan ... pasti ada yang salah dengan "classpath" atau yang serupa, tetapi saya tidak mengerti di mana / apa yang harus saya periksa ...
swalkner
0

Solusi untuk masalah saya yang serupa: libs tidak valid. Jika Anda melihat di file .classpath proyek, Anda akan melihat tag classpathentry dengan key / value kind = "lib". Beberapa dari saya salah.

Saya tidak menemukan ini sampai saya mematikan pengaturan Validasi. Artinya, ada begitu banyak kesalahan dalam file JSP, dll, sehingga kesalahan classpath tidak terbukti (atau bahkan mungkin muncul). Akibatnya, tidak ada yang dikompilasi ke dalam folder keluaran tujuan, tetapi tidak ada kesalahan yang membantu tentang alasannya.

Mike
sumber
0

Harap arahkan ke JDK yang benar dari Windows> Preferensi> Java> JRE Terinstal.

Jangan arahkan ke jre, arahkan ke JDK yang tepat. Saya menunjuk ke JDK 1.6U29 dan menyegarkan proyek.

Selanjutnya, masalah hilang dan Tes jUnit berfungsi dengan baik.

Terima kasih,
-Tapas

Tapas Adhikary
sumber
0

Saya telah mengalami kesalahan yang sama di Eclipse baru-baru ini, yaitu, Eclipse IDE tidak dapat menemukan kelas pengujian Unit tidak peduli bagaimana saya mengubah konfigurasinya. Belajar dari posting sebelumnya di sini dan di situs web lain, saya telah memeriksa dua kali dan tiga kali memeriksa classpath dan info sumber, dan berpindah ke atas dan ke bawah folder sumber dan perpustakaan, baik di "Run Configuration" dan "Java Build Path "config windows, dan saya juga telah membersihkan Proyek dan membangunnya kembali, tetapi tidak ada trik yang berhasil untuk saya. Proyek Java tertentu adalah proyek terkompilasi ANT lama dan memiliki banyak botol yang disertakan dalam perpustakaan Eclipse.

Kemudian, saya mengubah kelas pengujian unit untuk menambahkan metode main () dan mengklik kanan untuk "Jalankan Sebagai" Aplikasi Java alih-alih pengujian JUnit, dan tiba-tiba, Eclipse tampaknya terbangun dan mengidentifikasi kelas dengan benar. Setelah itu, saya mengembalikannya ke aplikasi pengujian Unit, dan masih berfungsi.

Ini tampaknya merupakan bug di Eclipse, saya menduga sejumlah besar perpustakaan (> 260) mungkin membingungkan kemampuan JVM untuk menemukan kelas JUnit saya.

Hongyu Zhang
sumber
0

Saya terkena masalah ini juga dan dapat memberikan solusi yang memadai untuk kasus saya. Jika project Eclipse Anda memiliki file .classpath di root project Anda (lihat di tampilan Navigator, bukan di tampilan Package Explorer), pastikan bahwa classpathentry Maven Anda muncul sebelum classpathentry JRE Container Anda.

<?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>

Jika project Anda tidak memiliki file .classpath, Anda dapat mengedit Java Build Path proyek Anda untuk mengganti Order dan Export. Jika proyek Anda memiliki file .classpath dan Anda hanya mengubah pengurutan di Java Build Path, Anda akan melihat bahwa pengurutan tidak terpengaruh dan masalah akan terus terjadi.

Dan sebuah proyek-> bersih tidak pernah merugikan banyak hal setelah Anda melakukan perubahan.

cmh
sumber
0

Pastikan konfigurasi peluncuran pengujian Anda TIDAK berisi baris berikut, ATAU coba aktifkan manajemen dependensi Maven otomatis.

<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
sumber
0

Saya mencoba semua yang saya baca di posting yang panjang ini dan, yang luar biasa, yang berhasil bagi saya adalah, daripada mengklik kelas pengujian dan memilih Run as JUnit test, mengklik metode pengujian dan menjalankan sebagai JUnit test. Saya tidak tahu kenapa?

ular berbisa
sumber
0

Tes JUnit dari dalam gerhana memberi saya juga NoClassDefFoundError. Menjalankan 'mvn clean test' dari baris perintah memberi saya kesalahan berikut pada beberapa toples: header LOC tidak valid (tanda tangan buruk) Menghapus toples ini dari gudang m2 lokal dan menjalankan 'mvn clean test' lagi memecahkan masalah saya.

RutgerDOW
sumber
0

Saya memiliki masalah yang sama. Semua yang saya lakukan adalah,

saya). Artefak Eclipse yang dihasilkan

mvn clean eclipse:eclipse

ii). Segarkan proyek dan jalankan kembali pengujian junit Anda. Seharusnya bekerja dengan baik.

Vikram
sumber
0

Selanjutnya, PERIKSA GANDA dialog "Web Deployment Assembly".

Ini dapat ditemukan: Project Properties-> Deployment Assembly.

Baru-baru ini saya memiliki plugin eclipse yang memodifikasi salah satu proyek web saya, dan menambahkan ~ secara misterius ~ menambahkan direktori pengujian maven / src / test / java, / src / test / resources ke Deployment Assembly. UGGGG !!!

Itulah mengapa proyek saya bekerja dengan baik ketika saya membangun & menerapkan langsung maven ke tomcat, tidak ada ClassNotFoundExceptions ... Namun, ketika saya melakukan penerapan melalui Eclipse, Whammo !! Saya mulai mendapatkan ClassNotFoundExceptions karena TestCode akan diterapkan.

Eric

Eric Manley
sumber
0

Itu berarti pom.xml Anda memiliki masalah yang belum terselesaikan. Buka tampilan masalah selesaikan sesuai. Kemudian Anda akan dapat menjalankan kasus pengujian dengan sukses tanpa menemui classnotfoundexception.

Raju Rao
sumber
0

Mengubah urutan artefak classpath di Java Build Path menyelesaikannya untuk saya.

  1. Klik kanan pada proyek dan pergi ke jalur Proyek Build.
  2. Pergi ke, Order and Export tab dan pindahkan perpustakaan sistem JRE ke setelah sumber.

Ini harus memperbaikinya.

Sai Killi
sumber