为了账号安全,请及时绑定邮箱和手机立即绑定

MacOs 上的 JNI 线程“main”java.lang.UnsatisfiedLink

MacOs 上的 JNI 线程“main”java.lang.UnsatisfiedLink

RISEBY 2021-10-28 14:53:58
我正在尝试了解 JNI,但是在第一个程序中,当我运行已编译的 Java 程序时,我编写它会出现以下异常。   Exception in thread "main" java.lang.UnsatisfiedLinkError: no prtmsg 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 MyMain.<clinit>(main.java:5)这是我的目录文件列表 direcotry 的屏幕截图这是java文件class MyMain{    public native void printmsg();    static{        System.loadLibrary("prtmsg");    }    public static void main(String[] args){        MyMain mm = new MyMain();        mm.printmsg();    }}请帮我解决这个问题。提前致谢 :)
查看完整描述

1 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

我在使用 MacOS 编译 c 代码时找到了答案,我们必须使用以下命令:


gcc -shared -o libLibraryName.dylib CProgramName.c -fPIC

这里作为编译代码的名称,它应该在开头和 .dylib 和结尾附加 lib。


在java中加载它时


 static{

        System.loadLibrary("LibraryName");

    }

不使用 libLibraryName.dylib 只使用 LibraryName。提取 lib 和 .dylib !


查看完整回答
反对 回复 2021-10-28
  • 1 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信