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

标签 java c linux path java-native-interface

我关注这个JNI ref从 java 调用 c 函数。

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

Exception in thread "main" java.lang.UnsatisfiedLinkError: no helloJni in

java.library.path

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

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

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

at HelloJni.(HelloJni.java:13)

我尝试设置 java.library.path,所以我键入 java -Djava.library.path=。你好Jni

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

此外,我尝试了 export LD_LIBRARY_PATH = $LD_LIBRARY_PATH:/sybase/IQ-16_0/jim_samples/udf/hellojni,但仍然无效。

最佳答案

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

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

关于java - 我正在尝试 JNI 如何在 Linux 中设置 java.library.path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38653637/

相关文章:

c - 在 Windows 上使用“空格”访问文件路径中的数据

java - 错误: Cannot create PoolableConnectionFactory (isValid() returned false)

c - openACC 传递结构列表

java - 无法使用 JPA 将 null 持久化到 oracle BLOB

c - C 中的方形问题

c++ - 使用 gdb 进行分布式软件调试

为交叉编译配置 Mono,什么进入 --host?

linux - 统计文件中字符的出现次数

java - 在 Java 类中实现的 UML 类图关联

java - 使用 Spring Security XML 配置的 HTTP Basic 不使用 HttpBasicConfigurer