2010-12-06 10 views
0

エラーが発生しましたが、私のアプリケーションに入りました。私はそれが何であり、解決策は何かを理解できません。私JavaのUnsatisfiedLinkError

java.lang.UnsatisfiedLinkError: no otfxjni 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 com.digitalpersona.onetouch.jni.FeatureExtractionLibrary.<clinit>(FeatureExtractionLibrary.java:16) 
     at com.digitalpersona.onetouch.jni.FeatureExtractor.<clinit>(FeatureExtractor.java:8) 
     at com.digitalpersona.onetouch.processing._impl.DPFPFeatureExtractionFactoryImpl$FeatureExtractionImpl.<init>(DPFPFeatureExtractionFactoryImpl.java:32) 
     at com.digitalpersona.onetouch.processing._impl.DPFPFeatureExtractionFactoryImpl.createFeatureExtraction(DPFPFeatureExtractionFactoryImpl.java:19) 
     at VarifyServer.extractFeatures(VarifyServer.java:121) 
     at VarifyServer.callClient(VarifyServer.java:71) 
     at Bean.callServer(Bean.java:30) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at org.apache.el.parser.AstValue.invoke(AstValue.java:131) 
     at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) 
     at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) 
     at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:88) 
     at javax.faces.event.ActionEvent.processListener(ActionEvent.java:77) 
     at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:743) 
     at javax.faces.component.UICommand.broadcast(UICommand.java:368) 
     at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447) 
     at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752) 
     at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97) 
     at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) 
     at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) 
     at com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:17) 
     at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.renderCycle(ReceiveSendUpdates.java:94) 
     at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.service(ReceiveSendUpdates.java:54) 
     at com.icesoft.faces.webapp.http.core.RequestVerifier.service(RequestVerifier.java:26) 
     at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24) 
     at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:160) 
     at com.icesoft.faces.webapp.http.servlet.SessionDispatcher$1.service(SessionDispatcher.java:38) 
     at com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet.service(ThreadBlockingAdaptingServlet.java:19) 
     at com.icesoft.faces.webapp.http.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:63) 
     at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:55) 
     at com.icesoft.faces.webapp.http.servlet.SessionVerifier.service(SessionVerifier.java:19) 
     at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23) 
     at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:91) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
     at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:56) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261) 
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581) 
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
     at java.lang.Thread.run(Unknown Source) 

答えて

1

com.digitalpersona.onetouch.jni.FeatureExtractionLibraryクラスでは、JNIを使​​用してotfxjniネイティブライブラリ(.soまたは.dll拡張子)を呼び出しています。しかし、そのライブラリはあなたのライブラリパスにありません。

ランタイムプロセスに-Djava.library.path=<path to otfxjni file>引数を追加することで、このパスを手動で設定できます。

+0

C:\ WINDOWS \ system32これはウィンドウ内のパスですが、Linuxについてはわかりません。 – chetan

+0

@chetanこれは実際にシステムによって異なります。 –

0

私が見、考えられる原因を案内してください、あなたのJavaライブラリパスに(Linuxを使用している場合やotfxjni.so)は、ライブラリotfxjni.dllがないということです。 (ないUnsatisfiedLinkErrorの)のJavaDocから

:Java仮想マシン がnativeを宣言 方法の適切な ネイティブ言語の定義を見つけることができない場合にスローされ

+0

私はotfxjni.soのパスを知ることができますか? – chetan

+0

ライブラリパスのファイルスキャンを行い、パスをjava libパスに置きます。 –

1

つまり、JVMは "otfxjni"ライブラリを見つけることができません。実際にそのライブラリを持っていて、適切な場所にあることを確認する必要があります(OSに依存します)。

EDIT:java.library.pathシステム変数の値を印刷して、どこが見えているかを知ることができます。

関連する問題