0

这似乎是一个非常简单的问题,我希望得到一个简单的答案。我已经阅读了很多关于此的帖子,但还没有找到解决方案。

这是一个简单的程序:

package org.foo.test.LoadLibTest;

public class Main 
{
    public static void main(String[] args) throws java.io.IOException 
    {   
        System.loadLibrary("ndbclient");
    }
}

这会产生以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no ndbclient in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1764)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1044)
    at org.paiego.test.LoadLibTest.Main.main(Main.java:9)

我使用以下参数修改了 java.library.path。这条路径确实有效并且包含库。

-Djava.library.path=/Users/foo/projects/hl/jpa_test/my-app/lib/

lib目录包含:

libndbclient.so

我使用的是 64 位操作系统:

Darwin paiego.local 13.0.0 Darwin Kernel Version 13.0.0: Thu Sep 19 22:22:27 PDT 2013; root:xnu-2422.1.72~6/RELEASE_X86_64 x86_64

然而 Eclipse 的 32 位版本:

-arch
x86

我尝试加载的库来自 MySQL Cluster 5.6 的 64 位安装

任何想法表示赞赏!

谢谢!

4

1 回答 1

2

您需要 64 位版本的 Java 来匹配您的共享库的 64 位版本。

于 2014-02-14T20:23:00.973 回答