我正在尝试 JNI 如何在 Linux 中设置 java.library.path

Posted

技术标签:

【中文标题】我正在尝试 JNI 如何在 Linux 中设置 java.library.path【英文标题】:How could set the java.library.path in Linux from I am trying JNI 【发布时间】:2016-12-03 20:45:57 【问题描述】:

我按照这个JNI ref从java调用c函数。

在最后一步中,我在输入 java hellojni 后收到以下错误消息:

线程“main”中的异常 java.lang.UnsatisfiedLinkError: no helloJni in

java.library.path

在 java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)

在 java.lang.Runtime.loadLibrary0(Runtime.java:870)

在 java.lang.System.loadLibrary(System.java:1122)

在 HelloJni.(HelloJni.java:13)

我尝试设置 java.library.path,所以我输入 java -Djava.library.path=。 HelloJni

但这对我不起作用,我仍然收到相同的错误消息。

另外,我尝试export LD_LIBRARY_PATH = $LD_LIBRARY_PATH:/sybase/IQ-16_0/jim_samples/udf/hellojni,但还是不行。

【问题讨论】:

您是否在 Helloxxxx.java 中加载了库静态 System.loadLibrary("Helloxxxx"); 【参考方案1】:

这似乎是路径问题,在“sybase/IQ-16_0/jim_samples/udf/hellojni”目录中找不到您的 libhellojni.so

记住 'lib' 前缀在你的 xxx.so 文件中很重要(如果你在 Linux 中运行它),只有 hellojni.so 不起作用。

【讨论】:

以上是关于我正在尝试 JNI 如何在 Linux 中设置 java.library.path的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中设置初始拥塞窗口大小?

在 Windows 7 中设置路径 Connector/J

在C中设置2D字符数组时出现SegFault

无法从 JNI 设置 Java int 数组字段

jQuery Raty 在点击事件中设置分数

如何在 Linux 设备驱动程序中设置 errno?