3
我有JMagick庫的奇怪問題。我使用Debian,所以我已經安裝了libjmagick6-Java和libjmagick6-JNI,這裏有步驟,我已經做了:不能得到JMagick工作
- 我抄
jmagick-6.6.9.jar
從/usr/share/java/
到$JAVA_HOME/jre/lib/ext/
。 - 我已經設置
/usr/lib/jni
(其中是libJMagick.so
)作爲本機庫位置在:- JRE系統庫(在eclipse)
- jmagick-6.6.9.jar(在eclipse)
此外,我已經在簡單的Java項目中測試了JMagick並且它在其中工作,但是在第二個項目中運行在Tomcat 6中的Web應用程序中,它只是不起作用。
這是我的代碼WORKS - 所以jmagick必須安裝正確:
public class Main {
public static void main(String[] arg) {
MagickImage image = null;
ImageInfo imageInfo = null;
try {
imageInfo = new ImageInfo("/home/firzen/IMG_0120.JPG");
image = new MagickImage(imageInfo);
System.out.println(image.getDimension().width);
} catch (MagickException e) {
System.out.println(e);
}
image.destroyImages();
}
}
這裏是在Web應用程序是代碼不工作:
public void init() {
ServletContext sc = getServletContext();
cacheHandlers = (Map<String, CacheContext>) sc.getAttribute("handlers");
Boolean applicationReady = (Boolean) sc.getAttribute("ready");
isReady = cacheHandlers != null && Boolean.TRUE.equals(applicationReady);
System.out.println("zde");
MagickImage image = null;
ImageInfo imageInfo = null;
try {
imageInfo = new ImageInfo("/home/firzen/IMG_0120.JPG");
image = new MagickImage(imageInfo);
System.out.println(image.getDimension().width);
} catch (MagickException e) {
System.out.println(e);
}
image.destroyImages();
}
最後這裏是例外拋出提到的代碼:
java.lang.UnsatisfiedLinkError: no JMagick in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at magick.Magick.<clinit>(Magick.java:18)
at cz.bach.mrimage.MrImageSrv.init(MrImageSrv.java:44)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:809)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:554)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
請告訴我一些想法如何解決這個問題lem ..提前致謝!
好計劃,沒有工作。我已經完成了5次以前的安裝,它會隨機停止檢測本地庫。 'libJMagick.so'絕對在'java.library.path'中,所以它是依賴關係,但是當它嘗試加載類時,我得到'UnsatisfiedLinkError'。 – coladict 2016-12-23 10:11:47