2014-11-27 2 views
0

libjahspotify을 사용하는 응용 프로그램을 개발 중입니다. 이 프로그램은 (윈도우 7) 바탕 화면에서 실행되고, 내 노트북 ​​(윈도우 8.1) 또는 내 다른 인텔 NUC (윈도우 7) 나는 아래의 오류가 무엇입니까에서 실행하려고 할 때 :다른 시스템에서 네이티브 라이브러리를로드 할 수 없습니다.

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\temp\jahspotify.dll: Can't find dependent libraries 
    at java.lang.ClassLoader$NativeLibrary.load(Native Method) 
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1929) 
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1814) 
    at java.lang.Runtime.load0(Runtime.java:809) 
    at java.lang.System.load(System.java:1083) 
    at jahspotify.JahSpotifyNativeLoader.<init>(JahSpotifyNativeLoader.java:90) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:408) 
    at java.lang.Class.newInstance(Class.java:438) 
    at jahspotify.impl.JahSpotifyImpl.<clinit>(JahSpotifyImpl.java:730) 
    at jahspotify.services.JahSpotifyService.initialize(JahSpotifyService.java:56) 
    at jahspotify.services.JahSpotifyService.getInstance(JahSpotifyService.java:26) 
    at jahspotify.services.JahSpotifyService.initialize(JahSpotifyService.java:39) 
    at net.functionseven.divicantus.spotify.Spotify.init(Spotify.java:29) 
    at net.functionseven.divicantus.Divicantus.main(Divicantus.java:20) 

네이티브를 libjahspotify의 -jar는 dll을 자동으로로드 할 예정이지만 그렇지 않습니다. 이 시점에서 jahspotify.dll이로드되지 않는 것 같습니다. 수동으로 jahspotify.dll을 폴더에 복사하면 native-jar는이를 삭제합니다.

나는 libjahspotify를 여러 번 다시 컴파일하고 여러 번 Java와 dll이 x86인지 확인했습니다. 또한 System.load()를 사용하여 수동으로로드하려고 시도했지만 아래와 같은 오류가 발생합니다.

Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: C:\temp\jahspotify.dll 
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1817) 
    at java.lang.Runtime.load0(Runtime.java:809) 
    at java.lang.System.load(System.java:1083) 
    at net.functionseven.divicantus.Divicantus.main(Divicantus.java:24) 

나는 무슨 일이 일어나고 있는지를 놓치고 있습니다.

+0

Welcome to StackOverflow. 몇 가지 코드를 제공하십시오 (SSCCE가 가장 좋음). –

답변

1

두 번째 시스템에 jahspotify.dll에 필요한 일부 DLL이 누락되었을 가능성이 높습니다. 종속성 워커 (http://www.dependencywalker.com/)에 필요한 dll을 확인하고 jahspotify.dll과 함께 이들을 수동으로 넣어보십시오. 일반적으로 누락 된 DLL은 C++ 재배포 가능 패키지 등입니다.

+0

그게 전부 였어. VS C++ 재배포 도구가 설치되었습니다. 고맙습니다. – Jeremy

관련 문제