noleveldbjni64-1.8injava.library.path
在抽取以太坊Java版本的Trie树部分时,遇到了⼀个问题:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no leveldbjni64-1.8in java.library.path, no leveldbjni-1.8in java.library.path, no leveldbjni in java.library.path]
at org.fusesource.hawtjni.runtime.Library.doLoad(Library.java:182)
at org.fusesource.hawtjni.runtime.Library.load(Library.java:140)
at org.fusesource.leveldbjni.JniDBFactory.<clinit>(JniDBFactory.java:48)
at Test.main(Test.java:13)
参考fusessource的leveldb的README才解决这个问题
只需要把leveldbjni-win64-1.8.jar导⼊⼯程即可(应为在win64下运⾏的)
设置项⽬maven依赖:
<dependency>
<groupId>org.fusesource.leveldbjni</groupId>
<artifactId>leveldbjni-win64</artifactId>
<version>99-master-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.fusesource.leveldbjni</groupId>
<artifactId>leveldbjni</artifactId>
<version>99-master-SNAPSHOT</version>
</dependency>
我⽤的Gradle管理项⽬,在项⽬adle的dependencies中添加
compile "org.fusesource.leveldbjni:leveldbjni:1.8"
compile "org.fusesource.leveldbjni:leveldbjni-win64:1.8"
两⾏,然后更新项⽬即可
leveldb使用ps. 什么是java.library.path
⼀般使⽤两个path:classpath 和 java.library.path
classpath是指向jar包的位置
java.library.path是⾮java类包的位置如(dll,so),java.library.path可以通过Propertu("java.library.path")查看。
public static void main(String[] args){
  System.out.println("java.library.path: ");
  System.out.Property("java.library.path"));
}
输出为:
java.library.path:
D:\Java\jdk1.8.0_91\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;D:/Jav。。。。
posted @ 2016-06-15 23:26 阅读( ...) 评论( ...)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。