Ubunt下java版本的CRF++的配置

【错误1】c++-O3-c-fpicCRFPP_wrap.cxx-I/usr/local/jdk/include-I/usr/local/jdk/include/linux

CRFPP_wrap.cxx:159:17: fatal error: jni.h: 没有那个文件或目录

#include<jni.h>

                  ^

compilation terminated.

make:***[all]错误 1

解决方法:修改makefile中的jdk位置,即以我的为例,INCLUDE=/usr/lib/jvm/java8/include,让一会的make命令可以找到jni.h这个文件,修改完成之后,make。

【错误2】java.lang.UnsatisfiedLinkError:no  CRFPP in java.library.path

解决方法:1.设定环境变量。

比如:所编辑的Dll在目录“D:/cppProjects/nativecode/release”内,将这个路径复制添加到电脑的环境变量中的path变量内即可。

2.设定项目属性。(开发推荐)

右击项目名|选择属性properties|在左边列表内选择“JavaBuild Path”|在右边选项卡用选择“source”|点开项目名前的“+”号,选择“Native library location”,“Edit”选择上面“D:/cppProjects/nativecode/release”路径。(当然如果将dll拷贝到workspace下也可以用相对路径。也可右击“src”设定其properties内Native Library项。)

【错误3】:Exception in thread "main" java.lang.RuntimeException: feature_index.cpp(193) [mmap_.open(model_filename)] mmap.h(153) [(fd = ::open(filename, flag | O_BINARY)) >= 0] open failed: home/di/eclipseWorkspace/AnaphoraResolution/src/cn/edu/fudan/crf/model

at org.chasen.crfpp.CRFPPJNI.new_Tagger(Native Method)

at org.chasen.crfpp.Tagger.(Tagger.java:183)

解决方法:遇到上述错误只需将Tagger tagger = new Tagger("-m ../model -v 3 -n2");中的相对路径改为绝对路径即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容