2012-05-16 2 views
2

나는 Eclipse에서 성공적으로 실행하고있는 junit 테스트 슈트를 가지고있다. 내가Junior cmdline - java.lang.ClassNotFoundException

java -jar AppTest.jar 

와 함께 항아리를 실행하려고하면 나는 다음과 같은 얻을 :

Exception in thread "main" java.lang.NoClassDefFoundError: org/junit/runner/JUnitCore 
at appdirect.AppTest.main(AppTest.java:18) 
Caused by: java.lang.ClassNotFoundException: org.junit.runner.JUnitCore 
at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
... 1 more 

나는 $ 경로 인쇄 (AppTest에서 프로그래밍) 로그를 생성하고 울리는 오전부터 단지가 성공적으로 생성 된 알 junit.jar가있는 디렉토리

일식에 불쾌 할 때를 어떻게 보장합니까? junit jar를 모두 가져 왔습니까?

+0

일반적으로 JAR 파일은'PATH' 환경 변수를 사용하지만 클래스 경로 메커니즘을 사용하여 선택하지 않습니다. – McDowell

답변

1

시스템 경로가 아닌 클래스 경로에 junit jar를 추가해야합니다.

이 작업을 수행하는 한 가지 방법은 junit.jar 및 AppTest.jar을 가리 키도록 classpath를 설정하고 main을 호출하는 것입니다.

java -cp /path/to/junit.jar:/path/to/AppTest.jar com.example.Main 
+0

'-jar' 옵션이 사용되면'-cp'는 무시됩니다. –

+0

젠장. 나는 단지 그것을 확인하려고 애썼다. 감사. – Jeremy

1

Path는 jar 파일을 인쇄하지만 classpath에있는 jar 파일입니다. 하는 당신이 당신의 JUnit 단지를 추가하고 실행 시도해야 CLASSPATH라는 또 하나 개의 환경 변수가 당신의 AppTest.jar

How to set classpath

1

주요 항아리의 매니페스트에있는 다른 항아리에 대한 참조를 추가합니다.

1

믿거 나 말거나, 마법사에서 "실행 가능한 병"으로 내보내고 "필요한 라이브러리 추출 ..."옵션을 사용하는 것처럼 간단합니다. 나는 그것을 정상적인 항아리로 수출하려했다.

관련 문제