Native calls from Java.
-
- Уже с Приветом
- Posts: 300
- Joined: 13 Aug 2003 18:32
Native calls from Java.
Я работаю с кодом, написанным на Java. В некоторых классах есть вызов C функций. Я зделала небольшую модификацию: добавила один аргумент (double) к аргументам, передаваемым в C функцию и это привело к регрессии моих тестируемых проектов. Новый параметр нигде в формулах не используется (пока). Проискодит только его передача. Кто-нибудь может объяснить, что происходит? Проверку на дурацкие ошибки, т.е. правильный тип нового аргумента и правильный порядок в списке я сделала первым делом.
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
Re: Native calls from Java.
Irrene wrote:Я работаю с кодом, написанным на Java. В некоторых классах есть вызов C функций. Я зделала небольшую модификацию: добавила один аргумент (double) к аргументам, передаваемым в C функцию и это привело к регрессии моих тестируемых проектов. Новый параметр нигде в формулах не используется (пока). Проискодит только его передача. Кто-нибудь может объяснить, что происходит? Проверку на дурацкие ошибки, т.е. правильный тип нового аргумента и правильный порядок в списке я сделала первым делом.
Как я понял Вы работаете только с ява кодом. Вам надо поправить JNI файлы - file.h i file.c и за пустить маке - перекомпилировать *so - (kstati, eto UNIX?)
Мона запустить javah, но он может попортить хедер файл, придется ручками править.
Помоему так.
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 300
- Joined: 13 Aug 2003 18:32
Re: Native calls from Java.
A. Fig Lee wrote:Как я понял Вы работаете только с ява кодом. Вам надо поправить JNI файлы - file.h i file.c и за пустить маке - перекомпилировать *so - (kstati, eto UNIX?)
Мона запустить javah, но он может попортить хедер файл, придется ручками править.
Я не использую header file. После внесенных изменений все было перекомпелировано. Система-Win2000.
-
- Уже с Приветом
- Posts: 20297
- Joined: 01 Dec 2003 23:16
- Location: Russia->USA
Re: Native calls from Java.
Irrene wrote:Я не использую header file. После внесенных изменений все было перекомпелировано. Система-Win2000.
Так Вы только на Java стороне поменяли, а C нетрогали ?
-
- Уже с Приветом
- Posts: 300
- Joined: 13 Aug 2003 18:32
Re: Native calls from Java.
geek7 wrote:Так Вы только на Java стороне поменяли, а C нетрогали ?
На С стороне я добавила новый аргумент в списке принимаемых аргументов.
Может использование оптимизатора как-то влияет?
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
Re: Native calls from Java.
Irrene wrote:geek7 wrote:Так Вы только на Java стороне поменяли, а C нетрогали ?
На С стороне я добавила новый аргумент в списке принимаемых аргументов.
Может использование оптимизатора как-то влияет?
Как ето Вы не используете хедер файлы?
JNI с помощью javah производит хеадер файл базируясь на Ява файле. поцле етого пишется имплементация в c файле. Использование оптимизатора не влияет.
Может у Вас длл которая создается потом копируется куда нибудь, а Вы не скопировали?
http://java.sun.com/docs/books/tutorial/native1.1/
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 300
- Joined: 13 Aug 2003 18:32
Re: Native calls from Java.
A. Fig Lee wrote:Как ето Вы не используете хедер файлы?
JNI с помощью javah производит хеадер файл базируясь на Ява файле. поцле етого пишется имплементация в c файле. Использование оптимизатора не влияет.
Может у Вас длл которая создается потом копируется куда нибудь, а Вы не скопировали?
http://java.sun.com/docs/books/tutorial/native1.1/
Спасибо за ссылку. У меня немного другая система. Я использую Mathematica для генерации кода. Гененируется *.cpp файл, в теле которого есть такие строчки:
#ifdef __cplusplus
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif
Процесс вплоть до создания dll полностью автоматизирован, так что dll всегда сбрасывается в нужное место.
В любом случае спасибо. Похоже, мне надо еще раз "sanity check" сделать.