2013-12-15 1 views
0

wsgen과 관련하여 문제가 발생했으나 해결되지 않은 답변을 보았으나 그 중 아무 것도 작동하지 않는 것 같습니다. 문제는 소스와 바이너리의 구조와 관련이 있다고 생각합니다.wsgen을 사용할 때 클래스를 찾을 수 없거나 잘못된 이름입니다.

bin 
└───com 
    └───example 
     └───ws 
src 
└───com 
    └───example 
     └───ws 

메인 클래스 패키지 com.example.ws에있는 Test입니다 :

WSTest 프로젝트는 다음 폴더에 설치됩니다.

나는 다음과 같은 명령을 사용하여 주요 프로젝트 폴더 WSTest에서 wsgen을 실행 해요 :

이 결과
wsgen -cp ./bin/com/example/ws -d ./src/com/example/ws -s ./src/com/example/ws Test 

: 스레드에서

예외 "기본"java.lang.NoClassDefFoundError가 (잘못 이름 : com/example/ws/Test)

클래스는 패키지의 일부이므로 의미가 있습니다.

wsgen -cp ./bin/com/example/ws -d ./src/com/example/ws -s ./src/com/example/ws com.example.ws.Test 

을하지만 지금은 클래스 wsgen 도구에서 발견되지 얻을 : 그래서 다음 내 명령을 변경 발견되지

클래스 : "com.example.ws.Test"

사용법 : WSGEN [옵션]

무엇이 누락 되었습니까?

답변

1

시도해 보셨습니까?

wsgen -cp ./bin -d ./src -s ./src com.example.ws.Test 

클래스 경로 폴더 wsgen 클래스 파일을 찾습니다했다한다. 클래스 내의 패키지는 폴더 경로로 해석되므로 com.example.ws.Testbin 클래스 경로 폴더 내에 com/example/ws/Test.class과 같은 파일이어야합니다. 에서

Java documentation :

당신의 클래스 경로 설정하는 내용에 따라 파일 이름이나 디렉토리로 끝나야 각 클래스 경로 : 포함하는의 .jar 또는 .zip 파일의 경우

  • 을 .class 파일의 경우 클래스 경로는 .zip 또는 .jar 파일의 이름으로 끝납니다.
  • 이름없는 패키지의 .class 파일의 경우 클래스 경로는 .class 파일이 포함 된 디렉토리로 끝납니다.
  • 명명 된 패키지의 .class 파일의 경우 클래스 경로는 "루트"패키지 (전체 패키지 이름의 첫 번째 패키지)가 포함 된 디렉토리로 끝납니다.
관련 문제