java.lang.RuntimeException:java.lang.UnsatisfiedLinkError:无法在jar文件中找到存根库 [英] java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Could not locate stub library in jar file

查看:157
本文介绍了java.lang.RuntimeException:java.lang.UnsatisfiedLinkError:无法在jar文件中找到存根库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是hbase的新手。我在Ubuntu 14.04 LTS上安装了Java 1.7.0
的Hadoop 2.3.0和Hbase 0.98.3。
当我运行./bin/hbase shell命令时,发生这个错误:

I'm new at hbase. I installed Hadoop 2.3.0 and Hbase 0.98.3 with Java 1.7.0 on Ubuntu 14.04 LTS. When I run "./bin/hbase shell" command, this error occures:

java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Could not locate stub library in jar file.  Tried [jni/ı386-Linux/libjffi-1.0.so, /jni/ı386-Linux/libjffi-1.0.so]
at com.kenai.jffi.Foreign$InValidInstanceHolder.getForeign(Foreign.java:90)
at com.kenai.jffi.Foreign.getInstance(Foreign.java:95)
at com.kenai.jffi.Library.openLibrary(Library.java:151)
at com.kenai.jffi.Library.getCachedInstance(Library.java:125)
at com.kenai.jaffl.provider.jffi.Library.loadNativeLibraries(Library.java:66)
at com.kenai.jaffl.provider.jffi.Library.getNativeLibraries(Library.java:56)
at com.kenai.jaffl.provider.jffi.Library.getSymbolAddress(Library.java:35)
at com.kenai.jaffl.provider.jffi.Library.findSymbolAddress(Library.java:45)
at com.kenai.jaffl.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:188)
at com.kenai.jaffl.provider.jffi.AsmLibraryLoader.loadLibrary(AsmLibraryLoader.java:110)
at com.kenai.jaffl.provider.jffi.Provider.loadLibrary(Provider.java:31)
at com.kenai.jaffl.provider.jffi.Provider.loadLibrary(Provider.java:25)
at com.kenai.jaffl.Library.loadLibrary(Library.java:76)
at org.jruby.ext.posix.POSIXFactory$LinuxLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:108)
at org.jruby.ext.posix.POSIXFactory$LinuxLibCProvider.getLibC(POSIXFactory.java:112)
at org.jruby.ext.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:30)
at org.jruby.ext.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:17)
at org.jruby.ext.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:70)
at org.jruby.ext.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:31)
at org.jruby.ext.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:29)
at org.jruby.ext.posix.LazyPOSIX.posix(LazyPOSIX.java:25)
at org.jruby.ext.posix.LazyPOSIX.isatty(LazyPOSIX.java:159)
at org.jruby.RubyIO.tty_p(RubyIO.java:1897)
at org.jruby.RubyIO$i$0$0$tty_p.call(RubyIO$i$0$0$tty_p.gen:65535)
at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:292)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:135)
at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:63)
at org.jruby.ast.IfNode.interpret(IfNode.java:111)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:147)
at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:183)
at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:292)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:135)
at org.jruby.ast.VCallNode.interpret(VCallNode.java:86)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:169)
at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:191)
at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:302)
at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:144)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:148)
at org.jruby.RubyClass.newInstance(RubyClass.java:822)
at org.jruby.RubyClass$i$newInstance.call(RubyClass$i$newInstance.gen:65535)
at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodZeroOrNBlock.call(JavaMethod.java:249)
at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:292)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:135)
at home.bytedeer.Kütüphaneler.hbase_minus_0_dot_98_dot_3_minus_hadoop2.bin.$_dot_dot_.bin.hirb.__file__(/home/bytedeer/Kütüphaneler/hbase-0.98.3-hadoop2/bin/../bin/hirb.rb:110)
at home.bytedeer.Kütüphaneler.hbase_minus_0_dot_98_dot_3_minus_hadoop2.bin.$_dot_dot_.bin.hirb.load(/home/bytedeer/Kütüphaneler/hbase-0.98.3-hadoop2/bin/../bin/hirb.rb)
at org.jruby.Ruby.runScript(Ruby.java:697)
at org.jruby.Ruby.runScript(Ruby.java:690)
at org.jruby.Ruby.runNormally(Ruby.java:597)
at org.jruby.Ruby.runFromMain(Ruby.java:446)
at org.jruby.Main.doRunFromMain(Main.java:369)
at org.jruby.Main.internalRun(Main.java:258)
at org.jruby.Main.run(Main.java:224)
at org.jruby.Main.run(Main.java:208)
at org.jruby.Main.main(Main.java:188)
Caused by: java.lang.UnsatisfiedLinkError: Could not locate stub library in jar file.  Tried [jni/ı386-Linux/libjffi-1.0.so, /jni/ı386-Linux/libjffi-1.0.so]
at com.kenai.jffi.Init.getStubLibraryStream(Init.java:201)
at com.kenai.jffi.Init.loadFromJar(Init.java:136)
at com.kenai.jffi.Init.load(Init.java:78)
at com.kenai.jffi.Foreign$InstanceHolder.getInstanceHolder(Foreign.java:49)
at com.kenai.jffi.Foreign$InstanceHolder.<clinit>(Foreign.java:45)
at com.kenai.jffi.Foreign.getInstance(Foreign.java:95)
at com.kenai.jffi.Internals.getErrnoSaveFunction(Internals.java:44)
at com.kenai.jaffl.provider.jffi.StubCompiler.getErrnoSaveFunction(StubCompiler.java:68)
at com.kenai.jaffl.provider.jffi.StubCompiler.<clinit>(StubCompiler.java:18)
at com.kenai.jaffl.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:146)
... 50 more
Foreign.java:90:in `getForeign': java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Could not locate stub library in jar file.  Tried [jni/ı386-Linux/libjffi-1.0.so, /jni/ı386-Linux/libjffi-1.0.so]
from Foreign.java:95:in `getInstance'
from Library.java:151:in `openLibrary'
from Library.java:125:in `getCachedInstance'
from Library.java:66:in `loadNativeLibraries'
from Library.java:56:in `getNativeLibraries'
from Library.java:35:in `getSymbolAddress'
from Library.java:45:in `findSymbolAddress'
from DefaultInvokerFactory.java:51:in `createInvoker'
from Library.java:27:in `getInvoker'
from NativeInvocationHandler.java:90:in `createInvoker'
from NativeInvocationHandler.java:74:in `getInvoker'
from NativeInvocationHandler.java:110:in `invoke'
from null:-1:in `isatty'
from BaseNativePOSIX.java:300:in `isatty'
from LazyPOSIX.java:159:in `isatty'
from RubyIO.java:1897:in `tty_p'
from RubyIO$i$0$0$tty_p.gen:65535:in `call'
from CachingCallSite.java:292:in `cacheAndCall'
from CachingCallSite.java:135:in `call'
from CallNoArgNode.java:63:in `interpret'
from IfNode.java:111:in `interpret'
from NewlineNode.java:104:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:147:in `call'
from DefaultMethod.java:183:in `call'
from CachingCallSite.java:292:in `cacheAndCall'
from CachingCallSite.java:135:in `call'
from VCallNode.java:86:in `interpret'
from NewlineNode.java:104:in `interpret'
from BlockNode.java:71:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:169:in `call'
from DefaultMethod.java:191:in `call'
from CachingCallSite.java:302:in `cacheAndCall'
from CachingCallSite.java:144:in `callBlock'
from CachingCallSite.java:148:in `call'
from RubyClass.java:822:in `newInstance'
from RubyClass$i$newInstance.gen:65535:in `call'
from JavaMethod.java:249:in `call'
from CachingCallSite.java:292:in `cacheAndCall'
from CachingCallSite.java:135:in `call'
from /home/bytedeer/Kütüphaneler/hbase-0.98.3-hadoop2/bin/../bin/hirb.rb:110:in `__file__'
from /home/bytedeer/Kütüphaneler/hbase-0.98.3-hadoop2/bin/../bin/hirb.rb:-1:in `load'
from Ruby.java:697:in `runScript'
from Ruby.java:690:in `runScript'
from Ruby.java:597:in `runNormally'
from Ruby.java:446:in `runFromMain'
from Main.java:369:in `doRunFromMain'
from Main.java:258:in `internalRun'
from Main.java:224:in `run'
from Main.java:208:in `run'
from Main.java:188:in `main'
Caused by:
Init.java:201:in `getStubLibraryStream': java.lang.UnsatisfiedLinkError: Could not locate stub library in jar file.  Tried [jni/ı386-Linux/libjffi-1.0.so, /jni/ı386-Linux/libjffi-1.0.so]
from Init.java:136:in `loadFromJar'
from Init.java:78:in `load'
from Foreign.java:49:in `getInstanceHolder'
from Foreign.java:45:in `<clinit>'
from Foreign.java:95:in `getInstance'
from Internals.java:44:in `getErrnoSaveFunction'
from StubCompiler.java:68:in `getErrnoSaveFunction'
from StubCompiler.java:18:in `<clinit>'
from AsmLibraryLoader.java:146:in `generateInterfaceImpl'
from AsmLibraryLoader.java:110:in `loadLibrary'
from Provider.java:31:in `loadLibrary'
from Provider.java:25:in `loadLibrary'
from Library.java:76:in `loadLibrary'
from POSIXFactory.java:108:in `<clinit>'
from POSIXFactory.java:112:in `getLibC'
from BaseNativePOSIX.java:30:in `<init>'
from LinuxPOSIX.java:17:in `<init>'
from POSIXFactory.java:70:in `loadLinuxPOSIX'
from POSIXFactory.java:31:in `loadPOSIX'
from LazyPOSIX.java:29:in `loadPOSIX'
from LazyPOSIX.java:25:in `posix'
from LazyPOSIX.java:159:in `isatty'
from RubyIO.java:1897:in `tty_p'
from RubyIO$i$0$0$tty_p.gen:65535:in `call'
from CachingCallSite.java:292:in `cacheAndCall'
from CachingCallSite.java:135:in `call'
from CallNoArgNode.java:63:in `interpret'
from IfNode.java:111:in `interpret'
from NewlineNode.java:104:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:147:in `call'
from DefaultMethod.java:183:in `call'
from CachingCallSite.java:292:in `cacheAndCall'
from CachingCallSite.java:135:in `call'
from VCallNode.java:86:in `interpret'
from NewlineNode.java:104:in `interpret'
from BlockNode.java:71:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:169:in `call'
from DefaultMethod.java:191:in `call'
from CachingCallSite.java:302:in `cacheAndCall'
from CachingCallSite.java:144:in `callBlock'
from CachingCallSite.java:148:in `call'
from RubyClass.java:822:in `newInstance'
from RubyClass$i$newInstance.gen:65535:in `call'
from JavaMethod.java:249:in `call'
from CachingCallSite.java:292:in `cacheAndCall'
from CachingCallSite.java:135:in `call'
from /home/bytedeer/Kütüphaneler/hbase-0.98.3-hadoop2/bin/../bin/hirb.rb:110:in `__file__'
from /home/bytedeer/Kütüphaneler/hbase-0.98.3-hadoop2/bin/../bin/hirb.rb:-1:in `load'
from Ruby.java:697:in `runScript'
from Ruby.java:690:in `runScript'
from Ruby.java:597:in `runNormally'
from Ruby.java:446:in `runFromMain'
from Main.java:369:in `doRunFromMain'
from Main.java:258:in `internalRun'
from Main.java:224:in `run'
from Main.java:208:in `run'
from Main.java:188:in `main'


推荐答案

我解决了我的问题。这是关于jruby-complete-1.6.8.jar中的jffi和ffi文件夹。我从maven仓库下载了jruby-complete.1.7.0,并且我已经更改了jffi四个jffi文件夹和两个ffi文件夹(它们的内容必须相同,但它们的内容必须相同路径可能会有所不同,1.7.0版本还有一个ffi文件夹,请忽略它。)。您可以使用默认的ubuntu存档程序来做到这一点。

I solved my problem. It's about jffi and ffi folders in jruby-complete-1.6.8.jar .I downloaded jruby-complete.1.7.0 from maven repository and i have changed jffi four jffi folder and two ffi folder (their contents have to be same but their paths may be different and 1.7.0 version has one more ffi folder, ommit it.). You can do this with default ubuntu archive program.

这篇关于java.lang.RuntimeException:java.lang.UnsatisfiedLinkError:无法在jar文件中找到存根库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆