diff --git a/source/net/filebot/mediainfo/MediaInfo.java b/source/net/filebot/mediainfo/MediaInfo.java index 2d59e530..99e94bdd 100644 --- a/source/net/filebot/mediainfo/MediaInfo.java +++ b/source/net/filebot/mediainfo/MediaInfo.java @@ -39,7 +39,7 @@ public class MediaInfo implements Closeable { try { handle = MediaInfoLibrary.INSTANCE.New(); } catch (LinkageError e) { - throw new MediaInfoException(); + throw new MediaInfoException(e); } } diff --git a/source/net/filebot/mediainfo/MediaInfoException.java b/source/net/filebot/mediainfo/MediaInfoException.java index 0f6452ba..137b5559 100644 --- a/source/net/filebot/mediainfo/MediaInfoException.java +++ b/source/net/filebot/mediainfo/MediaInfoException.java @@ -4,16 +4,14 @@ import com.sun.jna.Platform; public class MediaInfoException extends RuntimeException { - public MediaInfoException() { - super(String.format("Unable to load %d-bit native library 'mediainfo'", Platform.is64Bit() ? 64 : 32)); - } - public MediaInfoException(LinkageError e) { - super(String.format("Unable to load %d-bit native library 'mediainfo'", Platform.is64Bit() ? 64 : 32), e); + super(getLinkageErrorMessage(e)); } - public MediaInfoException(String msg, Throwable e) { - super(msg, e); + private static String getLinkageErrorMessage(LinkageError e) { + String name = Platform.isWindows() ? "MediaInfo.dll" : Platform.isMac() ? "libmediainfo.dylib" : "libmediainfo.so"; + String arch = System.getProperty("os.arch").toLowerCase().trim(); + return String.format("Unable to load %s native library %s", arch, name); } }