2013-09-04 4 views
0

JNA를 사용하여 네이티브 라이브러리 (ffmpeg)를로드하고 있지만 실제로 Native.loadLibrary를 호출하기 전에 DLL/SO 파일이 있는지 확인해야합니다). FFMPEG가 시스템에 항상 설치되지는 않을 수도 있습니다 (별도 다운로드).JNA Native.loadLibrary를 호출하기 전에 DLL/SO를 확인하는 방법 UnsatisfiedLinkError를 피하기 위해

Native.loadLibrary()는 try {} catch {}를 사용하여 트랩 할 수없는 오류를 발생시킵니다.

loadLibrary()를 실제로 호출하기 전에 라이브러리 (DLL 또는 SO)가 있는지 어떻게 확인합니까? PATH 환경 변수를 구문 분석하고 자신을 확인해야합니까? 나는 Windows 및 Linux에 대해 확인하고 올바른 32/64bit .dll 또는 .so가 설치되었는지 확인해야합니다. ???

loadLibrary가 방금 null 포인터를 반환했거나 예외 (오류가있는 디자인이 아님)가 발생하지 않았 으면합니다.

답변

0

신경 쓰지 마라, 나는 간단한 것을 발견했다.

오류를 잡을 수 있습니다. 네가 할 수 없다고 생각 했어. 나는 항상 try {} catch (Exception e) {}를 사용하여 모든 예외를 잡았지 만 오류는 catch하지 않습니다. 대신 try {} catch (Error e) {} 또는 catch (UnsatisfiedLinkError ule) {}를 사용해야합니다.

새로운 것을 매일 배우십시오.

+0

방금 ​​잡을 수있는 모든 것을 잡으려고하는 경우 (Throwable t) – PapaFreud

+0

예. 그게 내가 최근에 해왔 던 것입니다. 예외 W 오류는 Throwable에서 파생됩니다. –