Есть класс в котором вызывается Код | System.loadLibrary("lib")
|
, где lib - nativ(e)ная библиотека. Под windows класс запускается без вопросов (и библиотеку, скомпилированную gcc, звать 'lib.dll').
Под linux тот же класс не работает, ругается:
Код | Exception in thread "main" java.lang.UnsatisfiedLinkError: no lib in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682) at java.lang.Runtime.loadLibrary0(Runtime.java:822) at java.lang.System.loadLibrary(System.java:992) at RPtest.<clinit>(RPtest.java:87) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at net.sf.saxon.functions.ExtensionFunctionCall.invokeMethod(ExtensionFunctionCall.java:505) at net.sf.saxon.functions.ExtensionFunctionCall.call(ExtensionFunctionCall.java:218) at net.sf.saxon.functions.ExtensionFunctionCall.iterate(ExtensionFunctionCall.java:110) at net.sf.saxon.expr.CardinalityChecker.iterate(CardinalityChecker.java:137) at net.sf.saxon.expr.ExpressionTool.eagerEvaluate(ExpressionTool.java:278) at net.sf.saxon.expr.ExpressionTool.lazyEvaluate(ExpressionTool.java:244) at net.sf.saxon.expr.LetExpression.eval(LetExpression.java:163) at net.sf.saxon.expr.LetExpression.iterate(LetExpression.java:146) at net.sf.saxon.expr.IfExpression.iterate(IfExpression.java:225) at net.sf.saxon.expr.IfExpression.iterate(IfExpression.java:227) at net.sf.saxon.expr.LetExpression.iterate(LetExpression.java:154) at net.sf.saxon.expr.ForExpression$MappingAction.map(ForExpression.java:603) at net.sf.saxon.expr.MappingIterator.next(MappingIterator.java:61) at net.sf.saxon.expr.MappingIterator.next(MappingIterator.java:76) at net.sf.saxon.expr.ComputedExpression.process(ComputedExpression.java:567) at net.sf.saxon.expr.IfExpression.process(IfExpression.java:238) at net.sf.saxon.expr.IfExpression.process(IfExpression.java:240) at net.sf.saxon.expr.IfExpression.process(IfExpression.java:240) at net.sf.saxon.expr.LetExpression.process(LetExpression.java:202) at net.sf.saxon.expr.ForExpression.process(ForExpression.java:535) at net.sf.saxon.instruct.ElementCreator.processLeavingTail(ElementCreator.java:162) at net.sf.saxon.instruct.Instruction.process(Instruction.java:90) at net.sf.saxon.expr.ForExpression.process(ForExpression.java:535) at net.sf.saxon.instruct.ElementCreator.processLeavingTail(ElementCreator.java:162) at net.sf.saxon.instruct.Instruction.process(Instruction.java:90) at net.sf.saxon.query.XQueryExpression.run(XQueryExpression.java:311) at net.sf.saxon.Query.doMain(Query.java:418) at net.sf.saxon.Query.main(Query.java:76)
|
(1) не в зависимости от того, как звать библиотеку (скомпилированную gcc) 'lib', 'lib.so', "lib.o"; (2) не в зависимости от того указывать, или не указывать, java: -Djava.library.path=. при запуске, относит. путь указывать или абсолют.
Вопрос - почему и что делать? |