찾을 수없는 클래스는 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.class
이 C:\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]
내가 항아리를 많이 가지고 있기 때문에 jar 파일을 언급하지 않았습니다. 이미 -classpath에 지정되어 있습니다. shldd src에 .classpath 파일에 뭔가를 추가합니까? 자바 테스트 클래스 이름을 추가 하시겠습니까? – laura
시스템이'CLASSPATH' 환경 변수에 필요한 모든 jar 파일을 포함하도록 이미 설정되어 있다면'-classpath' 옵션을 완전히 생략 할 수도 있습니다. 이 경우 명령은'java org.junit.runner.JUnitCore Tester.GUI.api.Test1'입니다. –
@laura : .classpath (Eclipse 또는 다른 IDE를 사용하고 있습니까?) .bat 파일에서 영향을주지 않습니다. 'Test1' 클래스가 클래스 패스에서 발견되지 않는 것처럼 들립니다. @ Joe의 제안은 당신이 그것을 추적하는데 도움이 될 것이다. (예를 들어,'bin '의 기본 출력 폴더로 Eclipse를 사용한다면 classpath리스트에'; bin /'을 추가한다.) 기본적으로 테스트 클래스가 컴파일 될 폴더를 추가하려고합니다. – Ash