2012-04-26 3 views
1

자바 웹 응용 프로그램에서 ghost4j를 사용합니다. 이 lib는 JNA를 통해 dll을로드합니다. 지금은 classpath에 dll을 놓기를 원합니다. 테스트를 실행할 때이 애플리케이션의 작업 디렉토리가 변경되거나, Eclipse에서 서버에서 실행되거나, 테스트 목적으로 main 함수를 실행하기 때문입니다.buildpath에있는 JNA dlls

어떻게 JNA가 클래스 경로에보고 알 수 있습니까?

은 내가

class.getProtectionDomain().getCodeSource().getLocation().getPath() 

하지만 난이 SearchPath의이 programatical을 추가하는 방법 같은 뭔가 생각? VM 인수를 추가하고 싶지 않다.

답변

2

JNA는 네이티브 라이브러리에 대해 jna.library.path을 찾으며, 거기에 아무것도 발견되지 않으면 시스템 기본값 (보통 java.library.path과 동일)으로 돌아갑니다.

System.setProperty("jna.library.path", "/whatever/path/you/want"); 
+0

덕분 내가 class.getProtectionDomain()의 조합이 사용된다. getCodeSource(). getLocation는(). getPath() – wutzebaer