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

                  ^

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");中的相对路径改为绝对路径即可。

你可能感兴趣的:(Ubunt下java版本的CRF++的配置)