Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 加载共享库时出错:libcrfpp.so.0_Java_Linux_Shared Libraries_Filenotfoundexception - Fatal编程技术网

Java 加载共享库时出错:libcrfpp.so.0

Java 加载共享库时出错:libcrfpp.so.0,java,linux,shared-libraries,filenotfoundexception,Java,Linux,Shared Libraries,Filenotfoundexception,我检查了所有以前的线程,设置 LD_LIBRARY_路径,并相应地遵循。但仍然没有问题 我正在尝试执行cherrypicker软件,并以这种方式执行: ./cherrypicker.sh input.txt 错误消息: /root/Desktop/karim/software/cherrypicker1.01/tools/crf++/.libs/lt-crf_test: error while loading shared libraries: libcrfpp.so.0: cannot op

我检查了所有以前的线程,设置

LD_LIBRARY_路径,并相应地遵循。但仍然没有问题

我正在尝试执行
cherrypicker
软件,并以这种方式执行:

./cherrypicker.sh input.txt
错误消息:

/root/Desktop/karim/software/cherrypicker1.01/tools/crf++/.libs/lt-crf_test: error while loading shared libraries: libcrfpp.so.0: cannot open shared object file: No such file or directory
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0
    at java.util.Vector.get(Vector.java:744)
    at CreateNPSpan.<init>(CreateNPSpan.java:30)
    at CreateNPSpan.main(CreateNPSpan.java:81)
creating feature file....
java.io.FileNotFoundException: input.txt.npspan (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:146)
    at java.io.FileInputStream.<init>(FileInputStream.java:101)
    at java.io.FileReader.<init>(FileReader.java:58)
    at CherryPick.LoadManualEntities(CherryPick.java:111)
    at CherryPick.LoadEntities(CherryPick.java:139)
    at CherryPick.<init>(CherryPick.java:30)
    at CherryPick.main(CherryPick.java:2188)
Exception in thread "main" java.lang.NullPointerException
    at CherryPick.SortEntityMentions(CherryPick.java:171)
    at CherryPick.LoadEntities(CherryPick.java:141)
    at CherryPick.<init>(CherryPick.java:30)
    at CherryPick.main(CherryPick.java:2188)
classifying clusters using cr joint model.....
creating output.....
Gotcha creating entities : java.lang.NumberFormatException: For input string: "no"
对此有何建议?

遵循以下步骤

  • 转到并下载CRF++-0.58.tar.gz
  • 卸载上述文件并执行
    /configure
    进行安装
  • 在父目录中查找文件
    sudo find./| grep libcrfpp.so.0
    ,您将从中找到丢失文件的位置
  • 将该文件复制到
    /usr/lib
    cherrypicker1.01/tools/crf++/.libs/
  • 现在它应该可以工作了

    遵循以下步骤

  • 转到并下载CRF++-0.58.tar.gz
  • 卸载上述文件并执行
    /configure
    进行安装
  • 在父目录中查找文件
    sudo find./| grep libcrfpp.so.0
    ,您将从中找到丢失文件的位置
  • 将该文件复制到
    /usr/lib
    cherrypicker1.01/tools/crf++/.libs/

  • 现在它应该可以工作了

    库所在的路径取决于传递给
    --前缀
    配置
    脚本的值。如果未传递,则根据源代码,默认路径为
    /usr/local/

    实际上,默认情况下,
    /usr/local/lib
    不是系统搜索动态库的路径。因此,我们可以:

    echo "/usr/local/lib/" | sudo tee /etc/ld.so.conf.d/CRF.conf
    sudo rm -f /etc/ld.so.cache
    sudo ldconfig
    
    现在,执行以下操作:

    ldd $(which crf_test)
    
    输出应类似于:

    linux-vdso.so.1 (0x00007ffefc1f0000)
    libcrfpp.so.0 => /usr/local/lib/libcrfpp.so.0 (0x00007f6b715b4000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6b71398000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f6b71016000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f6b70d0e000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f6b70af7000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f6b70737000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f6b717f3000)
    
    CRF开发人员可能希望在二进制文件中使用硬编码
    /usr/local/lib/
    $PREFIX/lib
    作为要搜索的目录之一。要检查二进制文件是否包含RPATH,请执行以下操作:

    objdump -x $binary | grep RPATH
    

    库所驻留的路径取决于传递给
    --prefix
    configure
    脚本的值。如果未传递,则根据源代码,默认路径为
    /usr/local/

    实际上,默认情况下,
    /usr/local/lib
    不是系统搜索动态库的路径。因此,我们可以:

    echo "/usr/local/lib/" | sudo tee /etc/ld.so.conf.d/CRF.conf
    sudo rm -f /etc/ld.so.cache
    sudo ldconfig
    
    现在,执行以下操作:

    ldd $(which crf_test)
    
    输出应类似于:

    linux-vdso.so.1 (0x00007ffefc1f0000)
    libcrfpp.so.0 => /usr/local/lib/libcrfpp.so.0 (0x00007f6b715b4000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6b71398000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f6b71016000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f6b70d0e000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f6b70af7000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f6b70737000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f6b717f3000)
    
    CRF开发人员可能希望在二进制文件中使用硬编码
    /usr/local/lib/
    $PREFIX/lib
    作为要搜索的目录之一。要检查二进制文件是否包含RPATH,请执行以下操作:

    objdump -x $binary | grep RPATH
    

    安装您的
    libcrfpp.so.0
    (可能使用
    makeinstall
    )例如在
    /usr/local/lib/
    中。将
    /usr/local/lib/
    添加到
    /etc/ld.so.conf
    中。运行
    ldconfig
    。阅读并@BasileStarynkevitch:非常感谢。我做了
    ldconfig
    。如何安装
    libcrfpp.so.0
    ,因为我没有它。请详细说明如何安装?请阅读安装您的
    libcrfpp.so.0
    (可能使用
    makeinstall
    ),例如在
    /usr/local/lib/
    中。将
    /usr/local/lib/
    添加到
    /etc/ld.so.conf
    中。运行
    ldconfig
    。阅读并@BasileStarynkevitch:非常感谢。我做了
    ldconfig
    。如何安装
    libcrfpp.so.0
    ,因为我没有它。你能详细说明一下吗?请阅读