Caused by: java.lang.NoClassDefFoundError: magick/MagickException
應用啟動或執行圖片壓縮任務時拋出上述異常,提示找不到 magick.MagickException 類。
在 CentOS 6.3 環境中,已分別編譯安裝 ImageMagick-6.4.0-0.tar.gz 與 jmagick-6.4.0-src.tar.gz,但 Java 應用仍無法載入 JMagick 類。根本原因是 JVM 類路徑中缺少 jmagick.jar,導致類載入器找不到 magick 包下的所有類。
jmagick-6.4.0/target 或 build 目錄)找到 jmagick.jar。cp jmagick.jar /usr/local/jdk1.7.0_03/jre/lib/ext/libjmagick.so,該庫通常安裝在系統庫路徑(/usr/local/lib)。放入 jre/lib/ext 可確保所有 JVM 進程自動載入,避免類路徑配置遺漏。jmagick.jar 納入專案依賴管理(Maven/Gradle),並通過 -Djava.library.path 顯式指定原生庫路徑,避免污染全局 JDK。libjmagick.so 存在於 java.library.path 包含的目錄中(如 /usr/lib、/usr/local/lib),若無則需執行 ldconfig 更新動態鏈接器緩存。