现在的位置: 首页 > 综合 > 正文

解决 RNI接口调用出现的异常UnsatisfiedLinkError: no jtokyocabinet in java.library.path 及 wrong ELF class: ELFCLASS64问题

2013年12月05日 ⁄ 综合 ⁄ 共 892字 ⁄ 字号 评论关闭

  使用RNI接口调用C程序,经常会报 以下两种异常:

  UnsatisfiedLinkError: no jtokyocabinet in java.library.path

  wrong ELF class: ELFCLASS64

 

 UnsatisfiedLinkError: no jtokyocabinet in java.library.path 的解决方案

  解决方案如下:

  在应用容器的启动脚本中,将C程序所需类库.SO文件所在路径配置到 CLASSPATH ,LD_LIBRARY 及 java.library.path中,如下所述:

 

 

 

CLASSPATH="/usr/java/jdk/jre/lib/rt.jar:/usr/java/jdk/lib/tools.jar:/usr/local/lib/"
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib"
export CLASSPATH LD_LIBRARY_PATH

JAVA_OPTS="-server"
JAVA_OPTS="$JAVA_OPTS -Xms64m -Xmx128m"
JAVA_OPTS="$JAVA_OPTS -D64 -Djava.library.path=/usr/local/lib/"

 

 

  如果还是不行,就手动将上面的命令在SHELL中执行一遍。

 

 

wrong ELF class: ELFCLASS64的解决方案

原因是jVM是32位的版本,要装64位版本才行
32位java -version出来的结果如下:
java version "1.6.0_04"
Java(TM) SE Runtime Environment (build 1.6.0_04-b12)
Java HotSpot(TM) Server VM (build 10.0-b19, mixed mode)
而64位如下:
java version "1.6.0_12"
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) 64-Bit Server VM (build 11.2-b01, mixed mode)

 

抱歉!评论已关闭.