【发布时间】:2016-06-17 06:15:37
【问题描述】:
我想在我的 Java 程序中使用现有的静态 C++ 库。我读了that it should be possible。步骤将(几乎)相同as for linking dynamic libraries。不幸的是,如果我尝试使用以下内容加载库:
static {
System.loadLibrary("mylibrary");
}
我得到一个例外:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no mylibrary in java.library.path
我尝试在 System.loadLibrary 调用之前手动设置 java.library.path,但没有帮助:
System.setProperty("java.library.path", "/workspace/LibraryTest/lib/");
在项目的运行配置中设置LD_LIBRARY_PATH 也不能解决问题。我犯了同样的错误。但是对于共享库,它可以正常工作。目前我在 Debian Jessie 上的 Eclipse Mars 中使用 Oracle Java8。图书馆是否需要 JNI_OnLoad_mylibrary 方法?有人遇到过类似的问题吗?
编辑
尝试了 /usr/lib 目录并添加了JNI_OnLoad_mylibrary。没有成功。
【问题讨论】:
-
这个问题之前已经回答过了,很好,在这里:stackoverflow.com/questions/24493337/…
-
那是我已经在我的问题中链接的帖子。我知道它必须是可能的,但它不起作用。也许我错过了什么?
标签: java c++ eclipse java-native-interface static-libraries