是否有独立于平台的 Java 语句从与 Java 源代码所在的目录不同的目录加载本机库?我想使用这样的东西:
public class HelloWorld {
static {
System.loadLibrary("../some_project/HelloWorld");
}
public static native void print();
}
问题是 System.loadLibrary() 不支持路径名参数中的目录分隔符。此外,不幸的是 System.load() 需要一个绝对路径名,这不仅意味着我不能像上面那样指定相对目录(我想这样做),而且它还需要参数包括,例如前面的Linux 系统上 JNI 库名称上的“lib”和“.so”扩展名。
有处理这个的标准方法吗?如果可能的话,我想避免编写一堆依赖于平台的 Java 代码来构建正确的 JNI 库名称。