Eclipse - java.lang.ClassNotFoundException


95

Khi cố gắng khởi động JUnit-Test của tôi từ Eclipse, tôi nhận được "ClassNotFoundException". Khi chạy "mvn test" từ console - mọi thứ hoạt động tốt. Ngoài ra, không có vấn đề nào được báo cáo trong Eclipse.

Cấu trúc dự án của tôi như sau:

  • dự án mẹ (pom-bao bì)
    • Dự án web (đóng gói chiến tranh - thử nghiệm JUnit của tôi ở đây)
    • Dự án linh hoạt
    • Dự án cấu hình

sửa: Làm thế nào để không tìm thấy lớp? Đó là một ứng dụng HelloWorld đơn giản không có thư viện đặc biệt.

Đây là cấu hình chạy JUnit của tôi: alt text http://www.walkner.biz/_temp/runconfig.png


Testclass (nhưng như tôi đã nói; nó cũng không hoạt động với HelloWorld đơn giản ...):

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("", ""));
    }
}

3
Tôi nhận được lỗi tương tự khi cố gắng chạy một lớp HelloWorld đơn giản không có JUnit bao gồm ... Chính xác hơn: java.lang.NoClassDefFoundError: HelloWorld Nguyên nhân: java.lang.ClassNotFoundException: HelloWorld
swalkner

ClassNotFoundException được ném khi cố gắng phản ánh trên một lớp. NoClassDefFoundError được đưa ra khi bạn đang cố gắng sử dụng lớp trong một cuộc gọi phương thức bình thường.
akf

bạn có thể hiển thị mã cho lớp thử nghiệm của bạn không?
akf

bạn có tự động bật hay tắt bản dựng không?
Jon

xây dựng tự động được bật
swalkner

Câu trả lời:


193

Tôi đã gặp tình huống đó vài lần và sau rất nhiều cố gắng, tôi đã tìm ra giải pháp.

Kiểm tra đường dẫn xây dựng dự án của bạn và bật các thư mục đầu ra cụ thể cho từng thư mục. Đi từng cái một vào từng thư mục nguồn của dự án của bạn và đặt thư mục đầu ra mà maven sẽ sử dụng.

Ví dụ: dự án web của bạn src/main/javanên có target/classestrong dự án web, các lớp kiểm tra cũng nên có target/test-classestrong dự án web và như vậy.

Sử dụng cấu hình này sẽ cho phép bạn thực hiện các bài kiểm tra đơn vị trong nhật thực.

Một lời khuyên nữa, nếu các thử nghiệm của dự án web của bạn yêu cầu một số tệp cấu hình nằm trong tài nguyên, hãy đảm bảo bao gồm thư mục đó làm thư mục nguồn và tạo cấu hình đường dẫn xây dựng phù hợp.

Hy vọng nó giúp.


1
Chào Carlos, cảm ơn rất nhiều vì lời khuyên của bạn. Nhưng nó không giúp được gì, thật không may. Tôi đã thêm / src / main / java (target / class) và / src / test / java (target / test-class) vào các thư mục nguồn cũng như src / main / resources (applicationContext.xml, một số thuộc tính - target / class ). Cùng một vấn đề - khi khởi động src / test / java / UserDaoTest.java của tôi dưới dạng JUnit-test từ Eclipse, tôi nhận được "Không tìm thấy lớp UserDaoTest java.lang.ClassNotFoundException: UserDaoTest". Ít nhất, đó là một chút khác nhau chút sau đó được thông báo lỗi gốc ...
swalkner

5
Bạn đang đi đúng hướng, hãy kiểm tra xem lớp UserDaoTest có trong thư mục đầu ra tương ứng trong hệ thống tệp của bạn hay không (Như bạn có thể biết, Eclipse thực hiện biên dịch tất cả các tệp nguồn của bạn và đặt nó vào thư mục đầu ra được chỉ định, trong số những người khác, được có thể khởi chạy thử nghiệm). Nếu lớp không xuất hiện trong thư mục đầu ra, hãy kiểm tra bộ lọc bao gồm / loại trừ của đường dẫn xây dựng cho thư mục cụ thể này. Chúc may mắn.
Carlos

Đối với tôi điều này không giải quyết được vấn đề. Hóa ra đó là một vấn đề của AspectJ. Nếu bạn đang sử dụng AspectJ hãy thử gỡ bỏ và đọc các khả năng AspectJ - làm việc cho tôi
Stefan Haberl

1
Có cùng một vấn đề. Tôi nghĩ rằng đó là một dự án nhật thực - vấn đề maven - git. Điều đó không thực sự thu hẹp nó nhưng xóa tất cả các thư mục siêu dữ liệu (.project, .w Anything ...), xóa dự án và chỉ nhập lại như một dự án maven phù hợp với tôi. Tôi cũng phát hiện ra một điều không biết eclipse-junit có thể làm gì: làm nổi bật phương pháp thử nghiệm và chọn RunAs-Junit chỉ chạy phương pháp thử nghiệm cụ thể đó, không phải toàn bộ thử nghiệm! Không còn ở @Ignorekhắp nơi và các phím tắt gui!
bgs

Đối mặt với vấn đề tương tự, tôi chỉ cần sử dụng Eclipse -> Project -> clean và nó hoạt động. Mvn sạch không hoạt động.
Nutan

46

Phương pháp tiếp cận Carlos đã giúp! Eclipse - java.lang.ClassNotFoundException

Hãy thử kiểm tra classpath của cấu hình chạy junit:

  1. Mở cấu hình chạy của bạn
  2. Nhấp vào jUnit-Test bạn muốn bắt đầu
  3. chuyển đến tab classpath
  4. Cố gắng thêm một thư mục (nhấp vào mục người dùng, nhấp vào nâng cao, nhấp vào thêm thư mục, nhấp vào ok và tìm kiếm thư mục đầu ra cho các lớp thử nghiệm của bạn (những người bạn tìm thấy trong đường dẫn xây dựng java projektproperties, nguồn))

làm việc cho tôi.


2
Điều này không phải là rất lạ? Nó hoạt động với tôi, nhưng các lớp mục tiêu dir là một phần của đường dẫn xây dựng cho dự án. Không có ý nghĩa nhiều rằng bạn cần thêm một lớp cụ thể.
Jose Muanis

Tôi không nghĩ rằng hành động này nhất thiết phải thêm một thư mục cần thiết nhiều như kích hoạt một thứ gì đó được tải lại. Bạn có thể xóa ngay thư mục mới được thêm vào sau khi chạy thành công và nó sẽ hoạt động như bình thường. Ngoài ra, nhận xét trên là đúng. Cũng có thể muốn ủng hộ lời khen ngợi được tham khảo từ Carlos.
awied

Tôi tìm thấy câu trả lời về một câu hỏi SO trở nên hữu ích hơn với vấn đề này: stackoverflow.com/a/5718520/901641
ArtOfWarfare

16

đường dẫn xây dựng của bạn là đúng, đó là lý do tại sao bạn có thể biên dịch. classpath cho JUnit của bạn cần được kiểm tra. vào menu Run và chọn 'mở hộp thoại chạy.' trong đó bạn sẽ thấy một cái cây ở bên trái với JUnit là một tùy chọn. mở nút đó và tìm và chọn thử nghiệm của bạn. trên ngăn bên phải, bạn sẽ thấy một tab cho đường dẫn classpath. hãy xem để đảm bảo rằng lớp của bạn mà bài kiểm tra đang cố gắng khởi tạo sẽ được tìm thấy.

biên tập:

đây dường như là một vấn đề với maven và hành vi của nó sau khi một bản phát hành đã thay đổi các thư mục đầu ra Eclipse mặc định. tôi đã thấy các giải pháp được mô tả ở đâu

  • đặt maven vào bootclasspath TRÊN việc jre hoạt động, hoặc
  • chạy mvn clean testcó lừa hoặc
  • làm mới tất cả các dự án nhật thực của bạn, xây dựng lại sẽ khắc phục sự cố
  • đi tới dự án của bạn và chọn Maven-> Cập nhật cấu hình giải quyết vấn đề

với ba phần đầu tiên, đã có báo cáo về sự cố tái diễn. cái cuối cùng có vẻ tốt nhất với tôi, nhưng nếu nó không hoạt động, hãy thử những cái khác.

đâyđây là một số thông tin


1
thật không may, "Maven => Cập nhật Cấu hình" không giải quyết được vấn đề gì cả ... điều ngược lại là đúng; nó xóa cấu hình đường dẫn xây dựng ... Hay điều đó có nghĩa là một số cấu hình khác không tốt?
swalkner

Đúng như @swalkner đã chỉ ra: Maven => Cập nhật cấu hình sẽ làm hỏng cấu hình đường dẫn xây dựng. Đối với một số lý do mà eludes tôi plugin sẽ thiết lập bộ lọc loại trừ mà tôi luôn phải loại bỏ bằng tay sau khi chạy lệnh
Stefan Haberl

"vào menu Run và chọn 'mở hộp thoại chạy.' Huh ?? đâu của đó?
Berit Larsen

4

Sự cố có thể thiếu tệp lớp trong thư mục bản dựng của bạn. Một giải pháp là làm sạch dự án và xây dựng lại nó.


4

Bật [x] Sử dụng JAR tạm thời để chỉ định classpath (để tránh giới hạn độ dài classpath) bên trong tab Classpath của cấu hình Run đã thực hiện một mẹo nhỏ cho tôi.

Nếu dự án của bạn lớn và bạn có nhiều phụ thuộc từ các dự án anh em khác và phụ thuộc maven, bạn có thể gặp phải các giới hạn về độ dài classpath và đây dường như là giải pháp duy nhất (ngoài việc làm cho thư mục tới repo maven cục bộ của bạn ngắn hơn (chúng tôi đã bắt đầu tại c: / m2)

nhập mô tả hình ảnh ở đây


3

Có rất nhiều đề xuất phức tạp ở đây.

Tôi đã gặp sự cố này nhiều lần với các dự án Maven sau khi di chuyển tài nguyên xung quanh bằng cách kéo thả 'n' hoặc thực hiện cấu trúc lại tên lớp.

Nếu điều này xảy ra, chỉ cần sao chép (không di chuyển) vấn đề Test Case ( .java) qua trình duyệt tệp / thiết bị đầu cuối sang vị trí khác, right-click -> Deletetrong Eclipse và chọn xóa trên đĩa khi được cung cấp tùy chọn, di chuyển / sao chép tệp đã sao chép vào vị trí tệp gốc, sau đó chọn dự án của bạn trong Eclipse và nhấn F5 để làm mới tài nguyên.

Điều này rất nhanh chóng và dễ thực hiện và đã khắc phục sự cố vĩnh viễn cho tôi mọi lúc.


Tôi muốn hỏi liệu nó có khắc phục được sự cố của bạn vĩnh viễn hay mọi lúc ... nhưng tôi hiểu ý bạn, và thật tuyệt vời, điều này đã thành công với tôi.
Amos M. Carpenter

3

Tôi đã có cùng một vấn đề nhưng tôi đã tìm ra nó! Đi tới tệp dự án của bạn và nhấp chuột phải vào tệp, sau đó nhấp Refreshhoặc nhấn F5. Sau đó, hãy thử và chạy nó. Nếu nó vẫn không hoạt động thì chỉ cần quên nó đi, vì tôi đã gặp vấn đề CHÍNH XÁC tương tự và nó chỉ có nghĩa là phiên bản Eclipse của bạn là rác.


2

Đây là giải pháp của tôi cho vấn đề. Tất nhiên, nhiều thứ có thể khiến nó xảy ra. Đối với tôi, đó là Maven2 (không phải plugin cho Eclipse) đang thiết lập cấu hình nhật thực để sử dụng một trình tạo khác (khía cạnhJ) nhưng tôi không có plugin trong eclipse./

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

Cổ vũ Ramon Buckland


2

Quyền của Sachin: Ngay cả với đường dẫn lớp chính xác, tab vấn đề sẽ hiển thị rằng một số phụ thuộc hoặc Tài nguyên / dự án có lỗi cần được sửa để maven tự động xây dựng và tạo lớp khi bạn tạo hoặc thực hiện thay đổi trong lớp thử nghiệm của mình .

"Chào,

Rất cũ của nó Jul (năm đó) nhưng tôi đã gặp vấn đề tương tự.

Sự cố thực tế cho thấy rằng eclipse không thể tạo tệp lớp cho tệp java, classpath là đúng.

Xem tab sự cố và kiểm tra xem dự án của bạn có bị thiếu thứ gì / tệp nào không. bạn có thể tạo một proj mới và thêm từng tệp một và xây dựng chúng cho đến khi nó ngừng biên dịch và tạo lớp (kiểm tra vùng làm việc / proj / bin / package / thư mục cho các lớp)

wierd nhưng đúng, ecplise không đạt được sự khen ngợi vì 4 trong số 20 tệp java đang sử dụng một hình ảnh duy nhất bị thiếu. và kết quả là không có tệp java nào được biên dịch.

CLASSPATH không phải là vấn đề ở đây. "


2

Chúng tôi đã có ngoại lệ chính xác (sử dụng SpringSource Tools, tomcat, trên Win7) và nguyên nhân là do chúng tôi đã cấu trúc lại tên tệp (đã đổi tên tệp) từ SubDomain.java thành Subdomain.java (D so với d) và bằng cách nào đó nó đã bị va chạm mặc dù SpringSource đã hiển thị tên mới Subdomain.java. Giải pháp là xóa tệp (thông qua SpringSource) và tạo lại tệp dưới tên Subdomain.java và sao chép-dán nội dung cũ của nó. Đơn giản như vậy.


Tôi luôn chạy các trường hợp thử nghiệm tháng sáu, cho đến khi tôi chạy chương trình kiểm tra tính tương thích của PC trước khi nâng cấp cửa sổ. Điều đó được cố gắng để phá vỡ một cái gì đó, tôi không thể chạy lại các trường hợp thử nghiệm JUnit. (và tất cả các câu trả lời hiện không làm việc)
CoffeDeveloper

2

Tôi giải quyết rằng đường dẫn Bulit ---> thư viện ---> thêm thư viện ---> Junit kiểm tra junit4


1

nhấp vào project->properties->Java build path->Sourcevà kiểm tra từng srcthư mục vẫn còn tồn tại hợp lệ hoặc bị xóa gần đây. Sửa mọi đường dẫn bị thiếu hoặc đường dẫn không chính xác và xây dựng lại và chạy thử nghiệm. Nó sẽ khắc phục sự cố.


1

Tất cả những gì tôi đã làm là Thuộc tính -> Đường dẫn xây dựng Java -> Đặt hàng và xuất -> Bật tất cả các hộp bỏ chọn -> chuyển Junit lên trên


1

Đã thử

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

làm việc sau khi

Maven 2 LifeCycle >> kiểm tra


1

Tôi đã thử tất cả các giải pháp trên trang này: làm mới dự án, xây dựng lại, làm sạch tất cả dự án, khởi động lại Eclipse, nhập lại (thậm chí) các dự án, xây dựng lại maven và làm mới. Không có gì hoạt động. Những gì đã làm là sao chép lớp sang một tên mới chạy tốt - kỳ lạ nhưng đúng.

Sau khi khắc phục điều này một thời gian, tôi chỉ sửa nó bằng cách:

  1. Qua Runmenu
  2. Lựa chọn Run Configurations
  3. Chọn cấu hình chạy được liên kết với thử nghiệm đơn vị của bạn.
  4. Xóa mục nhập Run Configurationbằng cách nhấn xóa hoặc nhấp vào X màu đỏ.

Chắc hẳn có gì đó đã gặp trục trặc với cấu hình chạy được lưu trong bộ nhớ cache.


1
Sau quá nhiều thời gian lãng phí, tôi đã thực hiện các bước trên. Sau đó, tôi đã có một quyết định chính xác là xóa tất cả các cấu hình chạy thử nghiệm và bây giờ không thể tìm thấy bất kỳ thử nghiệm nào của tôi trong classpath mặc dù cấu hình chạy mới hiển thị rõ ràng dự án trong đó (với các phụ thuộc maven bên dưới). Tôi quên mất nhật thực giòn như thế nào. Sau đó không thể chạy thử nghiệm nào với eclipse (trước khi tôi có thể chọn một thử nghiệm cụ thể - ok). Cuối cùng, tôi đã thử đề xuất KomodoDave bên dưới. Điều đó đã cố định ... tuyệt vời là các vòng lặp bạn phải vượt qua với lý tưởng này (mới nhất trong một loạt phim ..)
justin

1

Xóa dự án khỏi eclipse (Không phải khỏi đĩa cứng), theo một cách nào đó là làm sạch không gian làm việc và nhập lại dự án vào eclipse một lần nữa đã hoạt động đối với tôi.


1

Thông thường sự cố này xảy ra trong khi chạy javacông cụ ứng dụng java không thể tìm thấy tệp lớp.

Hầu hết trong dự án maven, chúng tôi gặp sự cố này do sự cố đồng bộ hóa Eclipse-Maven . Để giải quyết vấn đề này: Maven-> Cập nhật cấu hình


0

Bạn đã thử nhấp chuột phải vào gốc dự án của mình, chọn "thuộc tính" và đảm bảo rằng CLASSPATH là chính xác chưa? Nếu tôi nhớ không lầm thì đó là cách bạn làm.

Bất cứ điều gì về cách Eclipse chạy các bài kiểm tra đơn vị yêu cầu bạn thêm JAR junit vào CLASSPATH thời gian chạy theo một cách đặc biệt?

Tôi sử dụng IntelliJ, vì vậy tôi không gặp những vấn đề này.

Tôi muốn tự mình kiểm tra Eclipse, nhưng tôi không muốn có nó trên máy tính để bàn của mình.


được, mà không dẫn đến cuộc thảo luận giữa Eclipse và IntelliJ; Tôi muốn có nó trong Eclipse đang chạy ... và tôi đã kiểm tra Đường dẫn xây dựng Java - Java JDK ở đó và tôi không cần bất kỳ thứ gì khác cho ví dụ HelloWorld của mình ... Tôi nghĩ đó là điều cần làm với 'thư mục nguồn trên đường dẫn xây dựng' ... Tôi đặt chúng thành thư mục nơi gói của tôi bắt đầu ... Tôi cho là đúng.
swalkner

Bạn cần một thứ gì đó ngoài JDK - đó là đường dẫn đến HelloWorld.class, phải không? "thư mục nguồn trên đường dẫn xây dựng" - nghe hay hơn. Không cần phải giả định, hãy là một nhà thực nghiệm và thử nó. Eclipse sẽ cho bạn biết nếu bạn chính xác.
duffymo

0

Hmm, trông hơi kỳ lạ, hãy thử chạy nó với chú thích sau ở đầu lớp:

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

và cho tôi biết làm thế nào bạn tiếp tục với nó.

Kiểm tra xem bạn cũng đã bật chế độ tự động chưa. Nếu bạn muốn đảm bảo rằng các lớp thử nghiệm của bạn đang được biên dịch chính xác, hãy xóa thư mục đích Maven (và bất kỳ thư mục bin nào mà Eclipse có thể đang sử dụng). Bạn cũng đang sử dụng m2eclipse, vì tôi thấy nó có một chút vấn đề.


cảm ơn rất nhiều vì câu trả lời của bạn, nhưng tuy nhiên: nó cũng không hoạt động; trước tiên, tôi phải bao gồm spring-test.jar, sau đó một phần phụ thuộc khác không được lấp đầy. Tôi không hiểu tại sao nó không hoạt động với một lớp helloworld đơn giản trong cùng một gói. và ở đó, tôi không cần "hack" như cách mà bạn đề xuất ... có gì đó sai với "classpath" hoặc thứ gì đó tương tự, nhưng tôi không hiểu ở đâu / những gì tôi phải kiểm tra ...
swalkner

0

Giải pháp cho vấn đề của tôi tương tự: các lib không hợp lệ. Nếu bạn nhìn vào tệp .classpath của dự án, bạn sẽ thấy các thẻ classpathentry với key / value kind = "lib". Một số của tôi đã không chính xác.

Tôi đã không phát hiện ra điều này cho đến khi tôi tắt cài đặt Xác thực. Có nghĩa là, có rất nhiều lỗi trong các tệp JSP, v.v., đến nỗi lỗi classpath không hiển thị (hoặc thậm chí có thể hiển thị). Kết quả là không có gì được biên dịch vào các thư mục đầu ra đích, nhưng không có lỗi hữu ích nào về lý do.


0

Vui lòng trỏ đến sửa JDK từ Windows> Tùy chọn> Java> JRE đã cài đặt.

Không trỏ tới jre, hãy trỏ tới một JDK thích hợp. Tôi đã chỉ đến JDK 1.6U29 và làm mới dự án.

Sau đó, sự cố đã biến mất và Kiểm tra jUnit đang hoạt động tốt.

Cảm ơn,
-Tapas


0

Gần đây, tôi đã gặp phải một lỗi tương tự trong Eclipse, tức là IDE Eclipse không thể tìm thấy lớp Unit test bất kể tôi thay đổi cấu hình như thế nào. Rút kinh nghiệm từ các bài viết trước ở đây và trên các trang web khác, tôi đã kiểm tra hai lần và kiểm tra ba lần đường dẫn thông tin nguồn và thông tin nguồn, đồng thời di chuyển lên xuống thư mục nguồn và thư viện, trong cả "Run Configuration" và "Java Build Path "cấu hình cửa sổ và tôi cũng đã dọn dẹp Dự án và xây dựng lại nó, nhưng không có thủ thuật nào phù hợp với tôi. Dự án Java cụ thể là một dự án đã được biên dịch ANT cũ và có rất nhiều bình chứa trong thư viện Eclipse.

Sau đó, tôi đã thay đổi lớp kiểm tra đơn vị để thêm một phương thức main () và nhấp chuột phải vào nó để "Chạy dưới dạng" một ứng dụng Java thay vì kiểm tra JUnit và đột nhiên, Eclipse dường như thức dậy và xác định chính xác lớp đó. Sau đó, tôi chuyển nó trở lại ứng dụng Unit test và nó vẫn hoạt động.

Đây dường như là một lỗi trong Eclipse, tôi đoán số lượng lớn các thư viện (> 260) có thể làm nhầm lẫn khả năng của JVM trong việc định vị lớp JUnit của tôi.


0

Tôi cũng gặp phải vấn đề này và có thể đưa ra giải pháp phù hợp cho trường hợp của mình. Nếu dự án Eclipse của bạn có tệp .classpath trong gốc dự án của bạn (xem tệp đó trong chế độ xem Bộ điều hướng thay vì chế độ xem Gói Explorer), hãy đảm bảo rằng bộ phân tích Maven của bạn xuất hiện trước bộ công cụ chứa JRE của bạn.

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

Nếu dự án của bạn không có tệp .classpath, bạn có thể chỉnh sửa Đường dẫn xây dựng Java của dự án để chuyển Thứ tự và Xuất. Nếu dự án của bạn có tệp .classpath và bạn chỉ thay đổi thứ tự của mình trong Java Build Path, bạn sẽ thấy rằng thứ tự không bị ảnh hưởng và sự cố sẽ tiếp tục xảy ra.

Và một dự án-> sạch sẽ không bao giờ làm tổn hại đến mọi thứ sau khi bạn thực hiện thay đổi.


0

Đảm bảo cấu hình khởi chạy thử nghiệm của bạn KHÔNG chứa các dòng sau, HOẶC thử bật quản lý phụ thuộc Maven tự động.

<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"/>

0

Tôi đã thử tất cả những gì tôi đọc được trong bài đăng dài này và, thật tuyệt vời, những gì hiệu quả với tôi, thay vì nhấp vào lớp thử nghiệm và chọn Run as JUnit test, nhấp vào phương pháp thử nghiệm và chạy như JUnit test. Tôi không biết tại sao?


0

Kiểm tra JUnit từ bên trong nhật thực cũng cho tôi NoClassDefFoundError. Chạy 'kiểm tra sạch mvn' từ dòng lệnh đã cho tôi lỗi sau trên một số lọ: tiêu đề LOC không hợp lệ (chữ ký không hợp lệ) Xóa các lọ này khỏi kho lưu trữ m2 cục bộ và chạy "kiểm tra sạch mvn" một lần nữa đã giải quyết được sự cố của tôi.


0

Tôi đã từng gặp vấn đề tương tự. Tất cả những gì tôi đã làm là,

Tôi). Tạo tác Eclipse đã tạo

mvn clean eclipse:eclipse

ii). Làm mới dự án và chạy lại thử nghiệm tháng sáu của bạn. Nên hoạt động tốt.


0

Hơn nữa, DOUBLE-KIỂM TRA hộp thoại "Hội đồng triển khai web" nhật thực.

Điều này có thể được tìm thấy: Thuộc tính dự án-> Hội đồng triển khai.

Gần đây, tôi đã có một plugin eclipse sửa đổi một trong các dự án web của mình và nó đã thêm ~ một cách bí ẩn ~ đã thêm các thư mục thử nghiệm maven / src / test / java, / src / test / resources vào Deployment Assembly. UGGGG !!!

Đó là lý do tại sao dự án của tôi hoạt động tốt khi tôi chỉ xây dựng và triển khai maven thẳng đến tomcat, không có ClassNotFoundExceptions ... Tuy nhiên, khi tôi triển khai thông qua Eclipse, Whammo !! Tôi bắt đầu nhận được ClassNotFoundExceptions vì TestCode đang được triển khai.

Eric


0

Điều đó có nghĩa là pom.xml của bạn có vấn đề chưa được giải quyết. Mở chế độ xem vấn đề giải quyết tương ứng. Sau đó, bạn sẽ có thể chạy các trường hợp thử nghiệm thành công mà không gặp phải classnotfoundexception.


0

Việc thay đổi thứ tự của các tạo tác classpath trong Java Build Path đã giải quyết được vấn đề đó cho tôi.

  1. Nhấp chuột phải vào dự án và đi đến đường dẫn Project Build.
  2. Đi tới tab Đặt hàng và Xuất và di chuyển thư viện hệ thống JRE sang sau các nguồn.

Điều này sẽ sửa chữa nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.