2010-02-24 3 views
0

내가 가진 다음 "박쥐"의자바 GUI 테스트

package Tester.GUI.api 
public class Test1{-----} 

:

나는 다음이 ".bat 인"일 시작
<path to java> -classpath<all jar defined in the classpath separated by ";"> org.junit.runner.JUnitCore Tester.GUI.api.Test1 

:

JUnit version 4.6 
Could not find class: Tester.GUI.api.Test1 
Time: 0,203 

OK (0 tests) 

jar 파일을 확인했지만 오타가 있었지만 원인을 찾을 수 없습니다. 누군가 도와 줄 수 있습니까?

답변

0

-classpath 옵션에는 일련의 지시문 및/또는 jar 파일이 필요합니다. 현재 누락 된 클래스이므로 기본 클래스 (JUnitCore)가 클래스 경로로 사용되고 Test1이 기본 클래스로 사용됩니다. 나는 당신이 메인 클래스로 JUnitCore을 원하고 Test1을 인수로 추측하고 있습니다.

가 (당신이 항아리 - 파일 1, 항아리 - 파일 2에 사용하고있는 항아리의 실제 이름으로 대체) 같은 것을보십시오 :

java -classpath <jar-file1.jar>;<jar-file2.jar> org.junit.runner.JUnitCore Tester.GUI.api.Test1 

편집 : 가정 jar 파일이 올바르게 지정의 오류 메시지는 Test1 클래스가 클래스 경로에 없음을 나타냅니다. IDE를 사용하는 경우 컴파일 할 출력 디렉토리를 찾아야합니다 (예 : Eclipse에서는 기본값으로 <project>/bin). 이 디렉토리 내에는 구조가 Tester/GUI/api 인 다른 디렉토리가 있습니다. Test1.class이라는 파일은 api 디렉토리에 있습니다. 이 출력 디렉토리는 클래스 경로 (즉, Tester/GUI/api 구조 위에있는 디렉토리)에 추가해야합니다.

+0

내가 항아리를 많이 가지고 있기 때문에 jar 파일을 언급하지 않았습니다. 이미 -classpath에 지정되어 있습니다. shldd src에 .classpath 파일에 뭔가를 추가합니까? 자바 테스트 클래스 이름을 추가 하시겠습니까? – laura

+0

시스템이'CLASSPATH' 환경 변수에 필요한 모든 jar 파일을 포함하도록 이미 설정되어 있다면'-classpath' 옵션을 완전히 생략 할 수도 있습니다. 이 경우 명령은'java org.junit.runner.JUnitCore Tester.GUI.api.Test1'입니다. –

+1

@laura : .classpath (Eclipse 또는 다른 IDE를 사용하고 있습니까?) .bat 파일에서 영향을주지 않습니다. 'Test1' 클래스가 클래스 패스에서 발견되지 않는 것처럼 들립니다. @ Joe의 제안은 당신이 그것을 추적하는데 도움이 될 것이다. (예를 들어,'bin '의 기본 출력 폴더로 Eclipse를 사용한다면 classpath리스트에'; bin /'을 추가한다.) 기본적으로 테스트 클래스가 컴파일 될 폴더를 추가하려고합니다. – Ash

0

찾을 수없는 클래스는 Tester.GUI.api.Test1입니다. 어떤 디렉토리에서 테스트를 실행하고 있고 어떤 디렉토리에 Test1 코드가 있습니까?

-classpath 변수를 설정하는 경우 클래스 경로에 현재 디렉토리를 포함해야 할 수도 있습니다. 그래서 원래의 명령이 있다면

java -classpath C:\foo.jar;D:\bar1\bar2.jar org.junit.runner.JUnitCore Tester.GUI.api.Test1 

이처럼 -classpath 옵션의 끝에 ;.를 추가하여 클래스 경로에 현재 디렉토리를 추가 할 수 있습니다

java -classpath C:\foo.jar;D:\bar1\bar2.jar;. org.junit.runner.JUnitCore Tester.GUI.api.Test1 

이는만큼 작동합니다 Test1 클래스는 현재 디렉토리 아래 Tester\GUI\api 디렉토리에 있습니다.

Java에서 클래스 경로를 설정하는 까다로운 점은 실제 .java 파일이있는 디렉토리를 제공하고 싶지는 않지만 이름이 지정된 디렉토리를 찾을 수있는 디렉토리를 제공하려는 것입니다. 코드에있는 패키지의 경우. 나는 패키지 bar.baz에서 클래스 Foo를 컴파일하는 경우

는 예를 들어, 나는 bar라는 이름의 다른 디렉토리 내부 baz라는 이름의 디렉토리에 Foo.class라는 이름의 파일이 있어야합니다.내 클래스 경로에 Foo을 포함 할 경우 및 Foo.classC:\Users\Joe\Code\bar\baz\Foo.class에있는 경우, 다음 나도

java -classpath C:\Users\Joe\Code [main class goes here] 

를 실행해야합니다 그렇지 않으면 나는 C:\Users\Joe\Code 내 디렉토리를 변경하고 실행해야

java -classpath . [main class goes here] 
+0

이해가 안됩니다 : 클래스 경로에 -java -classpath C : \ foo.jar; C : \ api \ Test1;을 추가해야합니다. org.junit.runner.JUnitCore Tester.GUI.api.Test1 – laura

+1

이 두 가지 질문에 대답 할 수 있다면 훨씬 더 정확한 답을 줄 수 있습니다 : 1.'.bat' 파일이 실행되는 디렉토리는 무엇입니까? 2. 어떤 디렉토리에'Test1.class'가 있습니까? 'Test1.java'가 어디에 있는지 모른다면,'Test1.java'가 어디에 있는지, 그리고'Test1.java'를 어떻게 컴파일했는지 알 수 있다면 여전히 도움이 될 것입니다. 예를 들어, Eclipse와 같은 IDE를 사용하여'Test1'을 컴파일 했습니까? 아니면 배치 파일이나 명령 프롬프트에서'javac' 명령을 사용 했습니까? –