Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> java.lang.UnsatisfiedLinkError, вызов native метода 
:(
    Опции темы
apexTwin
Дата 6.10.2008, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 6.10.2008

Репутация: нет
Всего: нет



Доброго времени суток всем. Хочу написать native метод. Делаю все по туториалу сановскому

Создал класс 
Цитата

 class HelloWorld {
     private native void print();
     public static void main(String[] args) {
         new HelloWorld().print();
     }
     static {
         System.loadLibrary("HelloWorld");
     }
 }

Скомпилил, генерю .h файл, 
Цитата

javah -jni HelloWorld

Вставляю реализацию
Цитата

 #include <jni.h>
 #include <stdio.h>
 #include "HelloWorld.h"
 
 JNIEXPORT void JNICALL 
 Java_HelloWorld_print(JNIEnv *env, jobject obj)
 {
     printf("Hello World!\n");
     return;
 }

Делаю из нее dll'ку. Запускаю в жаве метод main. Вылетает эксепшн 

Цитата

Exception in thread "main" java.lang.UnsatisfiedLinkError: ua.tmp.HelloWorld.print()V
    at ua.tmp.HelloWorld.print(Native Method)
    at ua.tmp.HelloWorld.main(HelloWorld.java:12)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)

Библиотека загрузилась, но похоже на то, что не находит метод. 
Смотрю dll'ку просмотрщиком Anywhere PE viewer, пишет

Java_HelloWorld_print@8 (Ordinal: 1, Entry Point RVA: 11d0h (4 560))

Т.е. вроде метод есть. Может кто подскажет, в чем может быть проблема?
PM MAIL   Вверх
ivg
Дата 6.10.2008, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 33
Всего: 81



Код

JNIEXPORT void JNICALL
Java_ua_tmp_HelloWorld_print(JNIEnv *env, jobject obj);

PM MAIL   Вверх
apexTwin
Дата 6.10.2008, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 6.10.2008

Репутация: нет
Всего: нет



Ох, прошу прощения. Это я криво запостил. Пытался вначале сделать класс в пакете, потом без

Добавлено через 56 секунд
Ошибка все равно остается (
PM MAIL   Вверх
apexTwin
Дата 8.10.2008, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 6.10.2008

Репутация: нет
Всего: нет



Всему виной кривые руки!! 
smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0759 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.