2011-09-22 4 views
3

내 응용 프로그램에 JNI를 사용하는 Java 프로그램을 호출하는 C++ exe 파일이 있으므로 jvm.dll이 필요합니다. 그러나 내 응용 프로그램이 자체 임베디드 jre와 함께 제공되기를 원하지만 JAVA_HOME에있는 jre6 폴더를 복사하여 설치 프로그램에 추가 한 후에 VM을 초기화하는 동안 오류가 발생했습니다. 네이티브 라이브러리를로드 할 수 없습니다 : Can 종속 라이브러리를 찾지 못함) jvm.dll에서 종속성 워커를 사용할 때 gpsvc.dll, IEShims.dll 및 sysntfy.dll을 찾을 수 없다고 말합니다. 이 dll을 jvm.dll과 같은 폴더에 복사 한 후 종속성 워커는 gpsvc.dll andsysntfy.dll이 x86이어야하는 64 비트임을 알립니다. 문제는, 그것들이 내 시스템의 유일한 dll이었습니다. 어떻게해야합니까?내 응용 프로그램과 jre 패키징

답변

1

해당 사이트에서 필요한 dll을 다운로드 할 수 있습니다 (예 : this one).

+0

좋아요. sysntfy.dll을 찾으면 종속성 워커가 gpsvc.dll에 대한 오류를 throw합니다. gpsvc.dll은 x64 버전으로 만 제공된다는 온라인 내용을 읽었을 때이 문제를 해결하려면 어떻게해야합니까? – shawn

+0

글쎄, 그건 아니에요, Microsoft 시스템 정책 클라이언트 라이브러리 때문입니다. 당신은 그것을 얻을 수 있습니다 http://www.dll-download-system.com/home/g-dlls-not-system-/gpsvc.dll/details.html – wanderlust

2

자바 가상 머신은 단지 jvm.dll 이상으로 구성됩니다. 자신의 응용 프로그램에 jvm.dll을 추가하는 대신 전체 JVM 패키지를 재배포하고 사용자 컴퓨터에 설치해야합니다.

응용 프로그램을 설치하기 전에 사용자가 직접 JVM을 다운로드하고 설치하도록 요구하는 것이 훨씬 쉬울 것입니다. 애플리케이션과 함께 JVM을 정말로 재배포하려면 오라클 웹 사이트에서 정확한 라이센스와 수행 방법에 대한 문서를 찾아야합니다. 예를 들어, JDK 6 readme 파일의 this paragraph을보십시오.

jvm.dll 및 기타 의존하는 다른 라이브러리를 복사하는 것만 큼 간단하지 않습니다.

+0

사실, 나는 http에 따라 전체 jre6 디렉토리를 복사 해 보았습니다. : //stackoverflow.com/questions/5380778/need-help-in-installing-jre 및 http://www.dobysoft.com/products/nativej/help/html/advanced/bundling.html ... 해당되는 경우 전체 jvm 패키지를 재배포하지 않습니다. 무엇입니까? 내가 따라야 할 구체적인 단계가 있습니까? – shawn

+0

Windows의 경우 JRE를 설치하면 레지스트리에 항목이 기록됩니다. JRE 디렉토리 만 복사하면 Windows에 설치할 수 없습니다. JRE 설치 프로그램을 실행해야합니다. – Jesper

+0

Err 방금 라이브러리를 복사했고 지금까지 작동하는 것 같았습니다 ... – shawn

관련 문제