이클립스-java.lang.ClassNotFoundException


95

Eclipse에서 JUnit-Test를 시작하려고하면 "ClassNotFoundException"이 발생합니다. 콘솔에서 "mvn test"를 실행하면 모든 것이 잘 작동합니다. 또한 Eclipse에서보고 된 문제가 없습니다.

내 프로젝트 구조는 다음과 같습니다.

  • 부모 프로젝트 (pom-packaging)
    • 웹 프로젝트 (war-packaging-내 JUnit-test가 여기에 있음)
    • Flex 프로젝트
    • 구성 프로젝트

편집 : 어떻게 수업을 찾을 수 없습니까? 특별한 라이브러리가없는 간단한 HelloWorld-Application입니다.

내 JUnit의 실행 구성은 다음과 같습니다. alt text http://www.walkner.biz/_temp/runconfig.png


Testclass (하지만 내가 말했듯이, 간단한 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("", ""));
    }
}

3
JUnit이 포함되지 않은 간단한 HelloWorld 클래스를 실행하려고 할 때 동일한 오류가 발생합니다 ... 더 정확하게는 java.lang.NoClassDefFoundError : HelloWorld 원인 : java.lang.ClassNotFoundException : HelloWorld
swalkner

클래스에 반영하려고 할 때 ClassNotFoundException이 발생합니다. NoClassDefFoundError는 일반 메서드 호출에서 클래스를 사용하려고 할 때 발생합니다.
akf 2009-06-27

테스트 클래스의 코드를 보여줄 수 있습니까?
akf 09-06-27

빌드가 자동으로 켜지거나 꺼져 있습니까?
Jon

빌드가 자동으로 켜짐
swalkner 2009-06-27

답변:


194

나는 그 상황을 여러 번 보았고 많은 시도 끝에 해결책을 찾았습니다.

프로젝트 빌드 경로를 확인하고 각 폴더에 대해 특정 출력 폴더를 활성화합니다. 프로젝트의 각 소스 폴더를 하나씩 이동하고 maven이 사용할 출력 폴더를 설정하십시오.

예를 들어 웹 프로젝트 는 웹 프로젝트 아래에 src/main/java있어야 target/classes하고 테스트 클래스는 target/test-classes웹 프로젝트 아래에도 있어야합니다 .

이 구성을 사용하면 Eclipse에서 단위 테스트를 실행할 수 있습니다.

웹 프로젝트의 테스트에 리소스 아래에있는 일부 구성 파일이 필요한 경우 한 가지 더 조언하면 해당 폴더를 소스 폴더로 포함하고 적절한 빌드 경로 구성을 만들어야합니다.

도움이되기를 바랍니다.


1
안녕하세요 카를로스, 조언에 감사드립니다. 그러나 불행히도 도움이되지 않았습니다. / src / main / java (target / classes) 및 / src / test / java (target / test-classes)를 소스 폴더와 src / main / resources (applicationContext.xml, 일부 속성-target / classes)에 추가했습니다. ). 같은 문제-Eclipse에서 JUnit-test로 src / test / java / UserDaoTest.java를 시작할 때 "Class not found UserDaoTest java.lang.ClassNotFoundException : UserDaoTest"가 표시됩니다. 적어도, 그 후 약간의 서로 다른 원래의 오류 메시지가 ...의
swalkner

5
올바른 길을 가고 있는지, UserDaoTest 클래스가 파일 시스템 내의 해당 출력 폴더에 있는지 확인하십시오 (아시다시피 Eclipse는 모든 소스 파일을 컴파일하여 지정된 출력 폴더에 배치합니다. 테스트를 시작할 수 있음). 클래스가 출력 폴더에 나타나지 않으면이 특정 폴더에 대한 빌드 경로의 포함 / 제외 필터를 확인하십시오. 행운을 빕니다.
Carlos

나를 위해 이것은 문제를 해결하지 못했습니다. AspectJ 문제라는 것이 밝혀졌습니다. 나를 위해 일한 - 당신은 AspectJ를를 사용하는 경우 AspectJ의 기능을 제거하고 읽어보세요
스테판 Haberl을

1
같은 문제가있었습니다. 나는 이클립스 프로젝트-maven-git 문제라고 생각합니다. 그것은 실제로 범위를 좁히지 않지만 모든 메타 데이터 폴더 (.project, .whatever ...)를 지우고 프로젝트를 삭제하고 maven 프로젝트로만 다시 가져옵니다. 또한 eclipse-junit이 할 수 있다는 것을 알지 못했던 것을 발견했습니다. 테스트 방법을 강조 표시하고 RunAs-Junit을 선택하면 전체 테스트가 아닌 특정 테스트 방법 만 실행됩니다! 더 이상 @Ignore모든 곳과 GUI 바로 가기가 없습니다!
bgs

같은 문제에 직면하고 있었기 때문에 Eclipse-> Project-> clean을 사용했습니다. Mvn clean이 작동하지 않았습니다.
Nutan

46

Carlos 접근 방식이 도움이되었습니다! 이클립스-java.lang.ClassNotFoundException

junit 실행 구성의 클래스 경로를 확인하십시오.

  1. 실행 구성 열기
  2. 시작하려는 jUnit-Test를 클릭하십시오.
  3. 클래스 경로 탭으로 이동
  4. 폴더 추가를 시도합니다 (사용자 항목을 클릭하고 고급을 클릭하고 폴더 추가를 클릭 한 다음 확인을 클릭하고 출력 폴더에서 테스트 클래스를 검색합니다 (projektproperties java 빌드 경로, 소스 아래에 있음)).

나를 위해 작동합니다.


2
이것은 매우 이상하지 않습니까? 그것은 나를 위해 일했지만 대상 클래스 dir은 프로젝트의 빌드 클래스 경로의 일부입니다. 특정 클래스를 추가해야한다는 것은 의미가 없습니다.
Jose Muanis

이 작업이 반드시 필요한 디렉토리를 추가하는 것만 큼 무언가를 다시로드 할 수 있다고 생각하지는 않습니다. 성공적으로 실행 한 후 새로 추가 된 디렉토리를 즉시 제거 할 수 있으며 정상적으로 작동합니다. 또한 위의 의견이 맞습니다. Carlos의 언급 된 칭찬에도 찬성 투표를 원할 수 있습니다.
awied mar

이 문제에 더 도움이되는 다른 SO 질문에 대한 답변을 찾았습니다. stackoverflow.com/a/5718520/901641
ArtOfWarfare 2013

16

빌드 클래스 경로가 정확하므로 컴파일 할 수 있습니다. JUnit의 클래스 경로를 확인해야합니다. 실행 메뉴로 이동하여 '실행 대화 상자 열기'를 선택하십시오. 거기에서 당신은 옵션으로 JUnit과 함께 왼쪽에 트리를 볼 수 있습니다. 해당 노드를 열고 테스트를 찾아 선택하십시오. 오른쪽 창에 클래스 경로에 대한 탭이 표시됩니다. 테스트가 인스턴스화하려는 클래스를 찾을 수 있는지 확인하십시오.

편집하다:

이것은 릴리스가 기본 Eclipse 출력 폴더를 변경 한 후 maven 및 그 동작의 문제인 것 같습니다. 나는 어디에 설명 된 해결책을 보았다

  • jre가 작동하는 위의 bootclasspath에 maven을 배치하거나
  • 달리기 mvn clean test는 트릭을 수행하거나
  • 모든 Eclipse 프로젝트를 새로 고치면 다시 빌드하여 문제가 해결됩니다.
  • 프로젝트로 이동하여 Maven-> Update Configuration을 선택하여 문제를 해결하십시오.

처음 세 개에서는 문제가 반복된다는보고가있었습니다. 마지막이 나에게 가장 잘 보이지만 작동하지 않으면 다른 것을 시도하십시오.

여기여기에 몇 가지 정보입니다


1
안타깝게도 "Maven => 구성 업데이트"는 문제를 전혀 해결하지 못합니다. 그 반대는 사실입니다. 빌드 경로 구성을 삭제합니다 ... 아니면 다른 구성이 잘못되었음을 의미합니까?
swalkner

@swalkner가 지적한대로 정확히 : Maven => 업데이트 구성은 빌드 경로 구성을 망칠 것입니다. 난 항상 명령을 실행 한 후 수동으로 제거해야합니다 제외 필터를 설정합니다 나에게 플러그인을 회피한다 어떤 이유
스테판 Haberl

"실행 메뉴로 이동하여 '실행 대화 상자 열기'를 선택하십시오. 어 ?? 그게 어디야?
Berit Larsen

4

빌드 폴더의 클래스 파일이 누락되었을 수 있습니다. 한 가지 해결책은 프로젝트를 정리하고 다시 빌드하는 것입니다.


4

사용 [X]를 사용하여 일시적으로 JAR 것은 (피하기 클래스 경로 길이 제한) 클래스 경로를 지정하는 내부 클래스 경로 탭실행 구성하는 것은 나를 위해 트릭을했다.

프로젝트가 거대하고 다른 형제 프로젝트 및 Maven 종속성에서 많은 종속성이있는 경우 클래스 경로 길이 제한에 도달 할 수 있으며 이것이 유일한 해결책 인 것 같습니다 (디렉토리를 로컬 maven 저장소로 더 짧게 만드는 것 외에는 이미 시작됩니다. c : / m2에서)

여기에 이미지 설명 입력


3

여기에는 복잡한 제안이 많이 있습니다.

드래그 앤 드롭으로 리소스를 이동하거나 클래스 이름을 리팩토링 한 후 Maven 프로젝트에서이 문제가 여러 번 발생했습니다.

이 경우 문제 테스트 케이스 ( .java)를 right-click -> DeleteEclipse에서 터미널 / 파일 브라우저를 통해 다른 위치 로 복사 (이동 아님) 하고 옵션이 주어지면 디스크에서 삭제하도록 선택하고 복사 된 파일을 원래 파일 위치로 이동 / 복사합니다. 그런 다음 Eclipse에서 프로젝트를 선택하고 F5를 눌러 리소스를 새로 고칩니다.

이것은 빠르고 쉽게 할 수 있으며 매번 문제를 영구적으로 해결했습니다.


나는 그것이 당신의 문제를 영구적으로 해결했는지 , 아니면 매번 해결했는지 묻고 싶었 습니다 . 그러나 나는 당신이 의미하는 바를 이해하고 놀랍게도 이것이 나를 위해 트릭을했습니다.
Amos M. Carpenter

3

나는 똑같은 문제가 있었지만 그것을 알아 냈습니다! 프로젝트 파일로 이동하여 마우스 오른쪽 버튼으로 클릭 한 다음 RefreshF5 를 클릭 하거나 누르십시오. 그런 다음 시도하고 실행하십시오. 그래도 작동하지 않으면 똑같은 문제가 있었고 Eclipse 버전이 쓰레기임을 의미하므로 잊어 버리십시오.


2

이것이 문제에 대한 나의 해결책이었습니다. 물론 많은 일로 인해 발생할 수 있습니다. 저에게는 Maven2 (Eclipse 용 플러그인이 아님)가 다른 빌더 (aspectJ)를 사용하도록 이클립스 프로필을 설정했지만 이클립스에 플러그인이 없었습니다 ./

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

건배 라몬 버클랜드


2

Sachin의 권리 : 올바른 클래스 경로를 사용하더라도 문제 탭에는 테스트 클래스를 만들거나 변경할 때 Maven이 클래스를 자동으로 빌드하고 만들 수 있도록 수정해야하는 일부 종속성 또는 리소스 / 프로젝트에 오류가 있음이 표시됩니다. .

"안녕하세요,

그것의 아주 오래된 7 월 (해) 그러나 나는 같은 문제가 있었다.

실제 문제는 Eclipse가 Java 파일에 대한 클래스 파일을 생성 할 수 없다는 것을 발견했습니다. 클래스 경로가 적절했습니다.

문제 탭을보고 프로젝트에 누락 된 항목 / 파일이 있는지 확인하십시오. 새 proj를 만들고 파일을 하나씩 추가하고 컴파일 및 클래스 생성이 중지 될 때까지 빌드 할 수 있습니다 (클래스에 대한 workspace / proj / bin / package / 폴더 확인)

그 이상하지만 사실, ecplise는 20 개의 자바 파일 중 4 개가 누락 된 단일 이미지를 사용하고 있었기 때문에 컴파일에 실패했습니다. 결과적으로 Java 파일이 컴파일되지 않았습니다.

CLASSPATH는 여기서 문제가되지 않습니다. "


2

우리는 정확한 예외 (Win7에서 SpringSource Tools, tomcat 사용)가 있었고 그 원인은 SubDomain.java에서 Subdomain.java (D vs d)로 파일 이름을 리팩토링 (파일 이름 변경)했고 어떻게 든 SpringSource가 충돌했지만 충돌했기 때문입니다. 새 이름 Subdomain.java를 표시합니다. 해결책은 (SpringSource를 통해) 파일을 삭제하고 Subdomain.java라는 이름으로 다시 만들고 이전 내용을 복사하여 붙여 넣는 것입니다. 그렇게 간단합니다.


Windows를 업그레이드하기 전에 PC 호환성을 확인하는 프로그램을 실행할 때까지 항상 junit 테스트 케이스를 실행했습니다. 그것이 뭔가를 깨는 것처럼 보였기 때문에 JUnit 테스트 케이스를 다시 실행할 수 없습니다. (및 모든 기존 답변이 작동하지 않음)
CoffeDeveloper 2015-09-03

2

Bulit 경로 ---> 라이브러리 ---> 라이브러리 추가 ---> Junit 확인 junit4


1

를 클릭 project->properties->Java build path->Source하고 각 src폴더가 여전히 유효한지 또는 최근에 제거 되었는지 확인하십시오 . 누락 된 경로 또는 잘못된 경로를 수정하고 테스트를 다시 빌드하고 실행하십시오. 문제가 해결됩니다.


1

내가 한 것은 속성-> Java 빌드 경로-> 주문 및 내보내기-> 선택되지 않은 모든 상자 활성화-> Junit을 끝까지 이동


1

시도

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

후에 일했다

Maven 2 LifeCycle >> 테스트


1

이 페이지의 모든 솔루션을 시도했습니다 : 프로젝트 새로 고침, 다시 빌드, 모든 프로젝트 정리, Eclipse 다시 시작, 프로젝트 다시 가져 오기 (심지어), maven 다시 빌드 및 새로 고침. 아무것도 작동하지 않았습니다. 어떤 작업하는 것은에 클래스 복사이었다 새 이름 기괴한하지만 진실 - 잘 실행됩니다.

이것을 잠시 참은 후 다음과 같이 수정했습니다.

  1. Run메뉴를 통해
  2. 고르다 Run Configurations
  3. 단위 테스트와 관련된 실행 구성을 선택합니다.
  4. 삭제 Run Configuration를 누르거나 빨간색 X를 클릭하여 항목을 제거합니다.

캐시 된 실행 구성에 문제가있는 것 같습니다.


1
너무 많은 시간을 낭비한 후 위의 단계를 수행하게되었습니다. 그런 다음 모든 실행 테스트 구성을 삭제하는 영웅적인 결정을 내렸고 새 실행 구성이 프로젝트를 명확하게 표시하더라도 클래스 경로에서 내 테스트를 찾을 수 없습니다 (아래에 maven 종속성 포함). 일식이 얼마나 부서지기 쉬운 지 계속 잊고 있습니다. 그 후 eclipse로 테스트를 실행할 수 없습니다 (특정 테스트를 선택하기 전에-ok). 마지막으로 아래 KomodoDave 제안을 시도했습니다. 그 고정 된 것들 ...이 ide (시리즈의 최신 ..)로 점프해야하는 루프를 놀라게합니다.
justin aug

1

작업 공간을 정리하고 프로젝트를 eclipse로 다시 가져 오는 방식으로 일식에서 프로젝트를 삭제하면 (하드 디스크가 아님) 나를 위해 일했습니다.


1

일반적으로이 문제 java는 클래스 파일을 찾을 수없는 Java 응용 프로그램 도구 를 실행하는 동안 발생 합니다.

대부분 Maven 프로젝트에서 Eclipse-Maven 동기화 문제 때문에이 문제가 발생합니다. 이 문제를 해결하려면 Maven-> Update Configuration


0

프로젝트 루트를 마우스 오른쪽 버튼으로 클릭하고 "속성"을 선택하고 CLASSPATH가 올바른지 확인 했습니까? 내가 정확하게 기억한다면, 그렇게하세요.

특별한 방법으로 런타임 CLASSPATH에 junit JAR을 추가해야하는 이클립스가 단위 테스트를 실행하는 방법에 관한 것이 있습니까?

IntelliJ를 사용하므로 이러한 문제가 없습니다.

이클립스를 직접 확인하고 싶지만 데스크톱에는 사용하지 않는 것이 좋습니다.


좋습니다. Eclipse 대 IntelliJ 토론으로 이어지지 않습니다. Eclipse에서 실행하고 싶습니다 ... 그리고 Java Build Path를 확인했습니다. Java JDK가 있으며 HelloWorld 예제에는 다른 것이 필요하지 않습니다 ... 관련이 있다고 생각합니다 '빌드 경로의 소스 폴더'... 내 패키지가 시작되는 폴더로 설정했습니다 ... 맞다고 생각합니다.
swalkner

JDK 외에 다른 것이 필요합니다. 이것이 HelloWorld.class의 경로입니다. 맞습니까? "빌드 경로의 소스 폴더"-소리가 더 좋습니다. 가정하고 실험가가되어 시도 할 필요가 없습니다. 이클립스는 당신이 맞는지 알려줄 것입니다.
duffymo 2009-06-27

0

흠, 좀 이상해 보이네요. 클래스 맨 위에 다음 주석으로 실행 해보세요.

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

어떻게하는지 알려주세요.

빌드가 자동으로 활성화되었는지도 확인하십시오. 테스트 클래스가 올바르게 컴파일되고 있는지 확인하려면 Maven 대상 폴더 (및 Eclipse에서 사용할 수있는 모든 bin 폴더)를 지우십시오. m2eclipse도 사용하고 있습니까? 조금 문제가 있습니다.


답변 주셔서 감사합니다. 그럼에도 불구하고 작동하지 않습니다. 먼저 spring-test.jar를 포함해야하며 다른 종속성이 채워지지 않았습니다. 동일한 패키지에서 간단한 helloworld-class와 함께 작동하지 않는 이유를 이해할 수 없습니다. 그리고 거기, 당신이 제안한 것과 같은 "해킹"이 필요하지 않습니다 ... "classpath"또는 이와 유사한 것에 뭔가 문제가있을 것 같지만 어디서 / 무엇을 확인해야하는지 알 수 없습니다 ...
swalkner 09

0

비슷한 내 문제에 대한 해결책 : libs가 유효하지 않았습니다. 프로젝트의 .classpath 파일을 보면 키 / 값 kind = "lib"인 classpathentry 태그가 표시됩니다. 내 일부가 잘못되었습니다.

유효성 검사 설정을 끌 때까지 이것을 발견하지 못했습니다. 즉, JSP 파일 등에 오류가 너무 많아서 클래스 경로 오류가 분명하지 않았거나 표시 될 수도 있습니다. 결과적으로 대상 출력 폴더로 컴파일되는 것이 없었지만 이유에 대한 유용한 오류는 없었습니다.


0

Windows> 환경 설정> Java> 설치된 JRE에서 올바른 JDK를 지정하십시오.

jre를 가리 키지 말고 적절한 JDK를 가리 키십시오. JDK 1.6U29를 가리키고 프로젝트를 새로 고쳤습니다.

이후에는 문제가 사라지고 jUnit 테스트가 제대로 작동합니다.

감사합니다,
-Tapas


0

최근 Eclipse에서 동일한 오류가 발생했습니다. 즉, 구성을 어떻게 변경하더라도 Eclipse IDE에서 단위 테스트 클래스를 찾을 수 없습니다. 여기와 다른 웹 사이트의 이전 게시물에서 배우면서 클래스 경로와 소스 정보를 두 번 확인하고 세 번 확인했으며 "실행 구성"및 "Java 빌드 경로에서 소스 폴더와 라이브러리를 위아래로 이동했습니다. "구성 창을 사용하고 프로젝트를 정리하고 다시 빌드했지만 어떤 트릭도 나에게 적합하지 않습니다. 특정 Java 프로젝트는 오래된 ANT 컴파일 프로젝트이며 Eclipse 라이브러리에 많은 jar가 포함되어 있습니다.

그런 다음 단위 테스트 클래스를 변경하여 main () 메서드를 추가하고 JUnit 테스트 대신 Java 응용 프로그램 "다음으로 실행"을 마우스 오른쪽 단추로 클릭하면 갑자기 Eclipse가 깨어나서 클래스를 올바르게 식별하는 것 같습니다. 나중에 단위 테스트 응용 프로그램으로 다시 전환했지만 여전히 작동합니다.

이것은 Eclipse의 버그 인 것 같습니다. 많은 라이브러리 (> 260)가 JUnit 클래스를 찾는 JVM의 기능을 혼동 할 수 있다고 생각합니다.


0

저도이 문제에 부딪 혔고 제 사건에 대한 충분한 해결책을 찾을 수있었습니다. Eclipse 프로젝트의 프로젝트 루트에 .classpath 파일이있는 경우 (패키지 탐색기보기 대신 네비게이터보기에서 확인) Maven 클래스 경로 항목이 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>

프로젝트에 .classpath 파일이없는 경우 프로젝트의 Java 빌드 경로를 편집하여 순서 및 내보내기를 전환 할 수 있습니다. 프로젝트에 .classpath 파일이 있고 Java 빌드 경로에서만 순서를 변경하는 경우 순서가 영향을받지 않고 문제가 계속 발생한다는 것을 알 수 있습니다.

그리고 프로젝트-> 청소는 당신이 변경을 한 후에 결코 일을 해치지 않습니다.


0

테스트 시작 구성에 다음 줄이 포함되어 있지 않은지 확인하거나 자동화 된 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"/>

0

나는이 긴 포스트에서 읽은 모든 것을 시도해 보았고, 놀랍게도 나를 위해 일한 것은 테스트 클래스를 Run as JUnit test클릭 하고을 선택 하고 테스트 메소드를 클릭 하고 JUnit test. 왜 그런지 모르겠어요?


0

이클립스 내부의 JUnit 테스트는 NoClassDefFoundError도 제공했습니다. 명령 줄에서 'mvn clean test'를 실행하면 여러 jar에서 다음과 같은 오류가 발생했습니다. 잘못된 LOC 헤더 (잘못된 서명) 로컬 m2 저장소에서 이러한 jar를 삭제하고 'mvn clean test'를 다시 실행하면 문제가 해결되었습니다.


0

나는 같은 문제가 있었다. 내가 한 모든 것은

나는). 생성 된 Eclipse 아티팩트

mvn clean eclipse:eclipse

ii). 프로젝트를 새로 고치고 junit 테스트를 다시 실행하십시오. 잘 작동합니다.


0

또한 Eclipse "Web Deployment Assembly"대화 상자를 두 번 확인합니다.

프로젝트 속성-> 배포 어셈블리에서 찾을 수 있습니다.

최근에 내 웹 프로젝트 중 하나를 수정하는 eclipse 플러그인이 있었고 ~ mysteriously ~가 Maven 테스트 디렉토리 / src / test / java, / src / test / resources를 Deployment Assembly에 추가했습니다. 어그 !!!

그래서 내 프로젝트는 직접 maven을 tomcat에 배포하고 ClassNotFoundExceptions를 배포하지 않았을 때 제대로 작동했습니다. TestCode가 배포되기 때문에 ClassNotFoundExceptions를 받기 ​​시작합니다.

에릭


0

이는 pom.xml에 해결되지 않은 문제가 있음을 의미합니다. 그에 따라 문제 해결보기를 엽니 다. 그러면 classnotfoundexception이 발생하지 않고 테스트 케이스를 성공적으로 실행할 수 있습니다.


0

Java 빌드 경로에서 클래스 경로 아티팩트의 순서를 변경하면 문제가 해결되었습니다.

  1. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 프로젝트 빌드 경로로 이동합니다.
  2. 주문 및 내보내기 탭으로 이동하여 JRE 시스템 라이브러리를 소스 다음으로 이동하십시오.

이것은 그것을 고칠 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.