2011-09-08 6 views
4

Java 프로젝트에서 DLL 파일을 사용하여 C++ 메소드를 호출하고 있습니다. 지금은 경로를 하드 코딩했습니다.DLL 파일을 넣을 위치는 어디입니까?

응용 프로그램은 여러 컴퓨터에 배포되며 여러 컴퓨터에서도 실행됩니다. DLL 파일을로드하고 모든 컴퓨터에서 호출 할 수 있도록 내 DLL 파일을 어디에 두어야합니까?

+0

앱을 사용합니까? GUI가 있으십니까? –

+2

BTW - Mac이나 * nix 머신에는 DLL을 넣고로드 할 수있는 위치가 없습니다. 이러한 플랫폼에 대한 원주민이 있습니까? –

답변

0

C : \ WINDOWS \ system32를

내가하지 전에 창문 전문가 &을 오랜 시간 사용하는 데 사용 (가정 C는 아마 당신이 레지스트리에서 그것을 얻을 수 있습니다, 윈도우가 설치된 드라이브입니다), 그래서했다 구글은 내가에 DLL을 넣어 응용 프로그램을 본 적이

+0

regsrv32는 COM/ActiveX .dll 파일 만 등록하며 DllRegisterServer() 항목이있는 경우에만 등록합니다. 아마 여기의 경우는 아닙니다. – paulsm4

2

(하나는 DLL을를 등록하려면 Regsvr32.exe를 사용하여 헤드 라인 로 시작하는) 링크의 마지막 항목을 참조하십시오 당신을위한 검색 및 링크 http://vlaurie.com/computers2/Articles/dll.htm

을 찾을 수 JAR 파일 런타임에 JAR에서 임시 디렉토리로 DLL을 추출한 다음 거기에 액세스합니다.

가장 효율적인 방법은 아니지만 배포 관점에서 보면 가장 쉬운 방법입니다.

+1

* "가장 효율적인 접근 방법은 아니지만 가장 쉬운 방법은"* [Java Web Start] (http://stackoverflow.com/tags/java-web-start/info)를 사용하여 기본 환경을 배포하는 것이 더 쉽습니다. –

1

DLL이 클래스 경로에 있는지 확인해야합니다.

그런 방법 중 하나는 PATH 환경 변수에 DLL 경로를 지정하는 것입니다.

다른 옵션은이 같은 변수 LD_LIBRARY_PATH에 VM 인수에 추가하는 것입니다

java -Djava.library.path=/path/to/my/dll -cp /my/classpath/goes/here MainClass 

당신이 확인해야 안정이 복잡한 응용 프로그램을 개발하는 경우 그 DLL 당신 OS가 그것을 찾으려는 어딘가에, 아마도 설치 스크립트/프로그램을 생각할 필요가있다.

관련 문제