【问题标题】:java.lang.UnsatisfiedLinkError chilkat libraryjava.lang.UnsatisfiedLinkError chilkat 库
【发布时间】:2019-11-20 08:51:39
【问题描述】:

我确信我可以加载 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 运行我的代码。

【问题讨论】:

  • 看起来你正在混合环境。 jnilib 通常用于 macOS。你在 GC 上有什么操作系统?
  • 我使用本地 jnilib 文件。 (苹果系统)。但我在 GC libchilkat.so 文件(Centos)上使用。两侧(本地和 GC)都得到相同的错误。双方都正常工作 mvn exec:java
  • 你知道如何正确使用 maven 的 nohup 吗?
  • 如果不查看源代码和pom.xml,很难判断项目内部发生了什么。

标签: java maven shared-libraries nohup chilkat


【解决方案1】:

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 放在您的目标之前。

【讨论】:

  • 谢谢。我尝试了“nohup mvn exec:java&”并工作了。但实际上给我错误行。但我的代码和项目工作正常。我不明白:) 2 或 3 天后,我必须在 GC 上上传我的项目新版本。如果我的项目不能正常工作,我会试试这个。再次感谢。
猜你喜欢
  • 2020-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多