【发布时间】:2018-11-07 00:26:05
【问题描述】:
我知道,这不是第一个库路径问题,但我真的不知道问题是什么。
我的项目需要一个KernelWrapper 库,在Linux 上包含它完全没有问题。
但是,当我尝试将它包含在 Mac 中(通过终端或直接在 IDE 中)时,我总是得到 p>
Exception in thread "main" java.lang.UnsatisfiedLinkError: no KernelWrapper in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at cTools.KernelWrapper.<clinit>(KernelWrapper.java:6)
at shell.main(shell.java:18)
我使用
打印出库路径System.out.println(System.getProperty("java.library.path"));
它告诉我文件夹的路径是正确的并且包含在内。然而,KernelWrapper 类不知何故不能正常工作。但它与 Unix 中包含的文件夹完全相同。 我错过了什么?
【问题讨论】:
-
你有Mac的
KernelWrapper.dylib吗? -
否定。我有这个自制的 KernelWrapper 库,它是一种 Java-C-Library 文件夹,它将内核命令从 C 映射到 Java 方法。在 Unix 下的 Build-Path 中包含这个文件夹就足够了。除此之外,Mac 还需要什么吗?
-
不,这还不够。您必须为 Mac 编译/链接您的代码,以便让作为本机应用程序的 Java 虚拟机加载和使用本机二进制代码。
标签: java macos unix library-path