2010-07-13 3 views
1

다른 라이브러리를 사용하여 Java 클라이언트를 작성 중이지만 동일한 기본이지만 다른 최적화가 적용됩니다.들어오는 매개 변수에 따라 다른 라이브러리를로드하는 방법은 무엇입니까?

나는 다른 라이브러리를로드하는 데 사용할 수있는 패턴 (또는 뭔가 다른)이 있습니다 예 : 설정 한 수입 올바른에서 라이브러리와 myapp.jar 1 (로드 및 사용하여 클라이언트를 생성 -jar

자바 이 라이브러리) ....

업데이트 : 업데이트 : 나는 OSGI를 시험해 보았고 서비스로 항아리를로드하는 것처럼 보입니다. 앱을 시작할 때 매우 유사한 라이브러리를로드하는 방법이 필요합니다. 라이브러리의 패키지/메소드 이름은 동일하지만 일부 계산은 다릅니다. 현실적인 결과를 얻으려면 정확한 클라이언트가 있어야합니다. 감사합니다.

답변

0

java.sql 인터페이스 아이디어가 작동하는 것처럼 들립니다. 클라이언트가 사용하는 인터페이스를 작성한 다음 JDBC 드라이버와 같은 특정 매개 변수에 따라로드되는 구현 JAR을 작성하십시오.

+0

빠른 답장을 보내 주셔서 감사합니다.하지만 자바에 익숙하지 않습니다. 제게이 링크 나 예제를 주시겠습니까? –

0

이것은 OSGI의 좋은 사용법처럼 들립니다. 여기에 good tutorials이 있습니다. 각 라이브러리는 별도의 jar 파일입니다. OSGI를 사용하면 원하는대로 각 항아리를로드하거나 언로드 할 수 있습니다. 실제로 앱을 다시 시작하지 않고도 즉시 라이브러리를 교환 할 수 있습니다.

편집

:. 의존성이 (statical 한 경우

당신이 자바 웹 스타트를 사용할 수 있습니다 (그것을 할 수있는 좋은 방법이다)은 OSGi에 대한 대안으로 Here is a good example app.

+0

자습서를 읽었지 만 OSGI가 엔터프라이즈 응용 프로그램에 사용되는 것 같습니다. 따라서 서블릿 또는 웹 시작에서 실행 중입니까? –

+0

OSGI는 일반적으로 Java 응용 프로그램과 함께 실행할 수 있습니다. 엔터프라이즈 앱 일 필요는 없습니다. –

+0

이것에 대해 살펴 보겠습니다. 고마워, 한번 시험 해보면 다시 올거야. 감사합니다 –

0

, 그 경우 말의 당신 런타임 동안 라이브러리 버전을 변경하지 않음).

그렇다면 사용자 매개 변수에 따라 라이브러리 버전을 선택하여 JNLP 파일을 동적으로 생성하는 것만 큼 간단합니다.

+0

이것은 오버레이/라우팅 프로토콜을 테스트하기위한 작은 클라이언트입니다. 오버레이 라이브러리에 종속성이있는 jar 파일을 만들었습니다. jar 파일을 실행할 때 시작 매개 변수를 기반으로 라이브러리를 변경하는 방법이 필요합니다. Web Start를 사용할 수 있는지 확신 할 수 없지만 가능한 한 적게 사용하는 것이 좋습니다. –

관련 문제