JNR UnsatisfiedLinkError
Posted
技术标签:
【中文标题】JNR UnsatisfiedLinkError【英文标题】: 【发布时间】:2017-04-01 06:14:00 【问题描述】:这个问题可能与 this 和其他大量 UnsatisfiedLinkError 问题有关。
我正在尝试运行以下代码。
import jnr.ffi.LibraryLoader;
import jnr.ffi.types.pid_t;
/**
* Gets the process ID of the current process, and that of its parent.
*/
public class Getpid
public interface LibC
public @pid_t long getpid();
public @pid_t long getppid();
public static void main(String[] args)
LibC libc = (LibC) LibraryLoader.create(LibC.class).load("c");
System.out.println("pid=" + libc.getpid() + " parent pid=" + libc.getppid());
代码编译正确但拒绝运行,
(编译步骤)
javac -cp /usr/share/java/jnr-ffi.jar:. Getpid.java
(运行步骤)
java -cp /usr/share/java/jnr-ffi.jar:. Getpid
在运行时我得到了这个error。
【问题讨论】:
找不到请求的类。在堆栈跟踪的底部查看根本原因 谢谢,有帮助! 【参考方案1】: 需要安装objective-web的asm.jar 和 jjfi.jar 将这些添加到您的类路径中,瞧!用这个编译:
javac -cp /usr/share/java/jnr-ffi.jar:.:/usr/lib/java/jffi.jar:/usr/lib/java/jffi-native.jar:/usr/share/java/objectweb-asm/asm.jar Getpid.java
然后运行:
java -cp /usr/share/java/jnr-ffi.jar:.:/usr/lib/java/jffi.jar:/usr/lib/java/jffi-native.jar:/usr/share/java/objectweb-asm/asm.jar Getpid
【讨论】:
以上是关于JNR UnsatisfiedLinkError的主要内容,如果未能解决你的问题,请参考以下文章