1 概念
no XXX in java.library.path的问题。
要解决这个问题,首先要了解一下java中的两个path:1.classpath;2.java.library.path;
第一个是指向编译好jar包(或则其他java类包)所在的位置;第二个是dll(或其他非java类包)所在的位置。
解决办法是:
1:LINUX下的系统变量LD_LIBRARY_PATH来添加java.library.path
2:在vm arguments里添加-Djava.library.path= /usr/local/lib
2 在jni调用中发现,java文件中调用的链接库(.so等)即使在环境变量中设置这两者也不生效。如
system.loadLibrary("com_kakfa_cxx");
这种问题采取上边的方法2,通过在jvm中设置变量可以解决,如下
options[1].optionString =
"-Djava.class.path=.:./javasource:./bfd-KafkaConsumer/lib";
options[2].optionString =
"-Djava.library.path=.:./bfd-KafkaConsumer/bin/com/bfd/kafka/BFDConsumerClient.class";