2013-10-07 3 views
3

약간 다른 API (메소드 서명)가있는 JAR의 두 가지 버전이 있는데 하나는 새 버전이고 다른 하나는 이전 버전입니다.두 가지 버전의 항아리를 쉽게 사용할 수 있습니까?

필요할 때마다 이전 jar로 폴백 할 수있는 (한 번에 하나씩 만 사용할 수있는) 응용 프로그램을 만들고 싶습니다.

이 목적을 위해 관련 클래스의 두 가지 버전, 즉 이전 API를 사용하는 버전과 새 API를 사용하는 버전이 있습니다. 환경 변수를 사용하여 클래스 경로에있는 JAR을 지정하고 응용 프로그램에서 동일한 변수를 사용하여 사용할 클래스를 결정할 수 있습니다.

제 문제는 다른 JAR에 대해 빌드 된 경우 동일한 프로젝트에서 두 클래스를 모두 쉽게 빌드 할 수 있다는 것입니다. 쉬운 솔루션?

+0

'쉬운'해결책이 제공되지 않지만 [유용한 질문]에서 유용한 정보를 찾을 수 있습니다. (http://stackoverflow.com/questions/6105124/java-classpath-classloading-multiple-versions-of-the-same-jar-project). – Henrik

답변

0

클래스 경로에 항아리를 보여주지 마십시오. 각 jar에 대해 두 개의 서로 다른 URLClassLoader를 만들고 클래스를 수동으로로드하십시오. classLoader1.loadClass 또는 classLoader2.loadClass

+0

이것은 Eclipse의 정적 분석을 완전히 망칠 것입니다. 맞습니까? – Chris2048

관련 문제