2009-05-19 10 views
2

특정 위치에 여러 개의 jar 파일이 있습니다. 일부 계산에 따라 다른 jar 파일을로드하고 jar 파일에서 특정 메서드를 호출해야합니다. jar 파일에는 웹 서비스의 클라이언트 역할을하는 메소드가 들어 있습니다. 리플렉션을 사용하여 메소드를 호출하면 Wrapper 클래스를 찾을 수없는 오류가 발생합니다. APT를 실행하여 생성 했습니까?jar 파일에서 런타임에 메서드를 호출하는 방법

+0

jar 파일을 어떻게로드합니까? URLClassLoader를 사용합니까? 그리고 일단 로더가 호출 할 클래스를 어떻게 결정합니까? – pgras

답변

0

가능한 해결책은 this question입니다.

리플렉션을 통해 메소드를 호출하려고했을 때 왜 이런 오류가 발생하는지 알 수는 없지만 googlingforum post (기타)을 사용했습니다.

1

JAR에서로드하는 클래스는 classpath에없는 다른 클래스를 사용하는 것처럼 들립니다. 의존하는 라이브러리를 응용 프로그램의 시스템 클래스 경로에 추가하거나로드중인 JAR의 Manifest 파일에있는 Class-Path 항목에 나열 할 수 있습니다.

+0

정확합니다. 이것이 일반적으로이 카테고리에서 내 문제를 해결합니다. –

0

그냥 -jar 옵션을 사용하고 있지 않은지 확인 하시겠습니까? 이는 -classpath과 상호 배타적입니다. 자세한 설명은 here을 참조하십시오.

+0

jar 파일은 다른 클래스에 대한 참조를 가지고 있지 않습니다. 단순히 웹 서비스에 대한 클라이언트입니다. 그래서 웹 서비스 클라이언트를 만든 방법과 관련이 있습니까? –

관련 문제