2013-05-15 3 views
1

Была эта библиотека, которая делала сопоставления функций функции C в JNI легкой. Я думаю, что это было названо API общих заглушек или что-то в этом роде, и он описан в знаменитой книге JNI и использовался для загрузки с сайта Oracle. Я больше не могу этого найти. Кто-нибудь знает, где он сейчас?Есть ли совместная реализация JNI для x64?

Самое важное, что в этой реализации была встроенная секция сборки кода для архитектуры x86. Интересно, нашел ли кто-нибудь x64-аналог этого кода? Любая помощь приветствуется.

Благодаря

ответ

0

Только что нашел этот старый вопрос, который я задал некоторое время назад. Правда, JNA - это путь, и это то, что я использовал.

Что касается рекомендаций, чтобы избежать нативных вызовов, соображения производительности не являются единственными в принятии решений по использованию собственного API. Я часто нахожу, что я часто включаю Java с устаревшим кодом, написанным на C/C++, часто сторонними библиотеками, для которых у меня нет исходного кода (и, откровенно говоря, я не хочу его иметь). Можно объединить эти библиотеки в вызовы собственных методов, но часто это очень много. JNA помогает здесь совсем немного.

3

Вы можете посмотреть на библиотеку ЮНА https://github.com/twall/jna

Вы должны помнить, что вызов сборки из Java может легко быть гораздо медленнее, чем писать то же самое в Java (который компилируется в родной сборки в любом случае)

Это полезно только в очень редких ситуациях.

+0

Никогда не использовался JNA, но в настоящее время я использую общие заглушки в своем программном обеспечении. Просто пытаюсь перенести проект на 64-битные окна. Моя жизнь была бы проще, если бы я мог найти dispatch_x64.c вместо того, чтобы использовать совершенно другой способ доступа к родным API. Вот откуда мой вопрос. –

+0

Я открыт для просмотра JNA, но это кажется довольно инвестиционным временем. Я не могу поверить, что нет более простого способа сделать то, что я хочу. Может быть, нет, но по-прежнему интересна проблема, чтобы исследовать немного дальше, прежде чем отказаться от нее. –

+0

Как правило, я стараюсь писать все на Java и избегать использования собственного кода. Как правило, все, что вы можете написать на C, вы можете писать на Java с почти одинаковой производительностью. –

0

Я считаю, что вы имеете в виду эту книгу: http://192.9.162.55/docs/books/jni/download/jni.pdf?

+0

Да, это именно та книга, о которой я говорю. В главе 9 этой книги есть большой раздел об общих окурках. Реализация этого совместного API-заглушек использовалась для загрузки с сайта Oracle с того же места, что и в книге, но я больше этого не нахожу. Кроме того, реализация общих заглушек была доступна только для 32-разрядных платформ. Там был файл dispatch_x86.c, содержащий функцию отправки, написанную встроенной сборкой. Я ищу реализацию этой функции отправки для x64 Windows и Linux. Я не думаю, что хочу написать это сам. –

+0

ОК, я только узнал, что встроенная сборка на x64 не поддерживается в Visual Studio. Интересно, знает ли кто-нибудь способ сделать общие заглушки работающими на x64. –

Смежные вопросы