在线程 "main "中出现异常 java.lang.UnsatisfiedLinkError:proiectP.JavatoC.getval(I)I。

问题描述 投票:0回答:1

这是我的代码,我已经把.dll添加到Java_Home的地方。然后我就出现了这个错误。

在 "main "线程中出现异常 java.lang.UnsatisfiedLinkError: proiectP.JavatoC.getval(I)I at proiectP.JavatoC.getval(Native Method) at proiectP.JavatoC.main(JavatoC.java:19)

public class JavatoC {
    public native int getval(int b);
    static {
        System.loadLibrary("main");
    }

    public static void main(String[] args) {
        try {
            int a;
            int b=3;
            a= new JavatoC().getval(b); 
            System.out.println(a);     
        } catch(Exception e) {
            System.out.println(e);
        }
    }
}

我也试着写 a= new proiectP.JavatoC().getval(b) 作为 proiectP 是包。它不工作。

java c dll path
1个回答
5
投票

似乎库的链接没有做对,在System.lang.UnsatisfiedLinkError: proiectP.JavatoC.getval(I)I在... 在System.loadLibrary中出现了问题。因为它不能显示所需的方法。

这些都是在Java中使用原生代码的要求,我不知道哪些没有被观察到。

第一,确保原生文件是正确的,getval方法必须在该dll中,名称、输入和输出的规格完全一样。

其次,完全是为了这个用途而编译的。

最后是方向正确,名称正确。

© www.soinside.com 2019 - 2024. All rights reserved.