Eclipse JNI разделяемая библиотека "несоответствие ширины слова архитектуры) Неправильный класс ELF UnsatisfiedLinkError - PullRequest
1 голос
/ 24 января 2012

Я использую JNI для доступа к собственному C-файлу через мою Java-программу. Я создал общий объект, который затмение и проект теперь может видеть. Проблема, которую я получаю сейчас,

Исключительная ситуация в потоке "main" -1 / lib / libxda_core_java.so: неправильный класс ELF: ELFCLASS64 (возможная причина: несоответствие ширины слова архитектуры)

Это двоичный файл, созданный для 64-битной архитектуры. Похоже, что есть несоответствие в JVM и так далее. Я проверил свою JVM, и это 64-разрядная среда выполнения. Однако, когда я использовал

System.Property ("sun.arch.data.model") вернул "32" Я думаю, что Eclipse работает в 32-битной JVM, и именно поэтому мой JNI Собственная библиотека не будет правильно связываться, и я получаю эту ошибку.

Есть предложения? Это потому что у меня 32-битная версия Eclipse? или есть способ, которым я могу заставить затмение использовать 64-битную JVM, которая установлена.

Редактировать: Я попробовал все предложения, и ничего не работает. Я изменил выполнение и переменные окружения, чтобы они указывали на новейший JDK, который у меня есть, 1.6_30. когда я запускаю программу из командной строки, я получаю 64 и amd64 в качестве значения, когда я запускаю ту же программу в eclise, я получаю 32 и i386. Что-то не так в затмении, которое заставляет его пытаться запустить его на 32-битной JVM. когда я пробую java -d32 -version, он говорит, что 32-битная среда не установлена, но Eclipse этого не знает. Я изменил файл Eclipse.ini и до сих пор ничего не работает. Я перезапустил затмение после этих изменений ... ничего. Может ли кто-нибудь, кто хорошо знает затмение, помочь мне здесь. спасибо

1 Ответ

1 голос
/ 24 января 2012

Переконфигурируйте Eclipse для использования 64-битной JVM для запуска вашей программы, поскольку вы создали 64-битную разделяемую библиотеку JNI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...