Исключение в потоке "main" java .lang.UnsatisfiedLinkError: proiectP.Javato C .getval (I) I - PullRequest
1 голос
/ 24 апреля 2020

Это мой код, и я добавил .dll к месту, где находится Java_Home. И у меня есть эта ошибка:

Исключение в потоке "main" java .lang.UnsatisfiedLinkError: proiectP.Javato C .getval (I) I в proiectP. Javato C .getval (родной метод) на proiectP. Javato C .main (Javato C. 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);
        }
    }
}

I также пытался написать a= new proiectP.JavatoC().getval(b) как proiectP это пакет. Это не работает.

1 Ответ

5 голосов
/ 26 апреля 2020

Кажется, что ссылка на библиотеку сделана неправильно. Проблема в System.loadLibrary. Потому что он не может показать требуемый метод.

Это требования для использования собственного кода в Java, и я не знаю, что не было замечено:

Сначала сделайте Убедитесь, что собственный файл правильный, метод getval должен быть в этой dll, точно с такими же характеристиками имени, ввода и вывода.

Во-вторых, он точно скомпилирован для этого использования.

Последний в правильном направлении с правильным именем.

...