首页 > 解决方案 > java.lang.UnsatisfiedLinkError chilkat 库

问题描述

我确信我可以加载 libchilkat.jnilib 文件。当我将正确路径更改为错误路径时,更改错误无法加载库。所以我确信我的图书馆已经加载了。(我使用 try 和 catch 并正确传递。)上传这个库工作。在那之后,当我想使用这个库部分时,比如:CkGlobal glob = new CkGlobal();

我收到了这个错误:

java.lang.UnsatisfiedLinkError: 嵌套异常是 java.lang.UnsatisfiedLinkError: com.chilkatsoft.chilkatJNI.swig_module_init()V] 根本原因是 com.chilkatsoft.chilkatJNI.swig_module_init()V

我搜索但没有找到。此错误类似于java.lang.UnsatisfiedLinkError:但不同,因为其他java.lang.UnsatisfiedLinkError include 'Native code library failed to load.'

我确定我的图书馆已加载。

如果我运行我的项目 'mvn exec:java' 来处理这段代码。一切都很好,但我想在 GC 上使用 nohup 运行我的代码。

标签: javamavenshared-librariesnohupchilkat

解决方案


import com.chilkatsoft.CkGlobal;

public class Simple {

  String PATH_TO_LIB="/full/path/to/lib";

  static {
    System.load(PATH_TO_LIB + "/libchilkat.so");
  }

  public static void main(String argv[]) {
    CkGlobal glob = new CkGlobal();
  }
}

和这样的编译:

> javac -cp ./chilkat.jar Simple.java
> java -cp .:./chilkat.jar Simple
> nohup java -cp .:chilkat.jar Simple

它按预期工作。我建议看看 Maven 执行的确切命令 - 放在-X你的目标之前。


推荐阅读