C++로 작성되고 다른 운영 체제 용으로 컴파일 된 공유 라이브러리를 사용하는 Java 응용 프로그램을 빌드하고 있습니다. 문제는이 공유 라이브러리 자체가 적절한 환경 변수 (PATH, LIBRARY_PATH 또는 LD_LIBRARY_PATH)에서 일반적으로 발견되는 추가 라이브러리에 의존한다는 것입니다.런타임시 공유 라이브러리로드 경로
이 환경 변수를 설정할 수는 있지만 설정할 수는 없습니다. 차라리 플러그인처럼 런타임에 주어진 경로에서 필요한 공유 라이브러리를로드하고 싶습니다. 그리고 아니오 - 저는 새로운 환경에서 새로운 프로세스를 시작하는 시작 응용 프로그램을 원하지 않습니다. 아무도 이것을 달성하는 방법을 알고 있습니까?
내가 사용하는 라이브러리 중 하나가 주어진 경로에서 플러그인을로드 할 수 있기 때문에 이것이 가능해야한다는 것을 알고 있습니다. 물론 플랫폼 독립적 인 코드를 선호하지만, 가능하지 않은 경우 Windows, Linux 및 MacOS 용 별도 솔루션을 사용할 수도 있습니다. 내가 공유 라이브러리 내가 사용하고자하는 거라고 언급해야
편집 단일 기능의 바인딩이 그것을하지 않을 즉, 객체 지향이다.
Java에서 라이브러리를 어떻게로드합니까? –
Java Native Access (JNA) – aRestless