Ошибка при запуске 32-битной .dll на 64-битной виртуальной машине Java Inteliij - PullRequest
0 голосов
/ 13 декабря 2018

Я получаю приведенную ниже ошибку, когда пытаюсь выполнить приведенную ниже строку кода в моем проекте.Я добавил 64-битный JDK в свойства своего проекта.Я использую Intellij в качестве своей IDE

System.loadibrary (smsjavaagentapi)

Неустранимая ошибка: исключение из System.loadibrary (smsjavaagentapi) java.lang.unsatisfiedLinkError smsjavaagentapi.dll: не удается загрузить IA32-битный .dll на 64-битной платформе AMD

Мне кажется, проблема в том, что я использую 64-битную JVM и пытаюсь запустить 32-битный .dll.У меня нет возможности установить 32-битный JDK на мою машину и добавить его в свойства моего проекта, а также я не могу портировать DLL на 64-битную версию.Есть ли обходной путь для этого?

1 Ответ

0 голосов
/ 14 декабря 2018

На уровне ОС существует ограничение, которое запрещает загрузку 32-битной разделяемой библиотеки 64-битным процессом, поэтому вы можете

  • изменить ОС, чтобы это сделать (не легко)
  • перенести библиотеку DLL в 64-разрядную версию путем ее перекомпиляции.
  • установить 32-разрядную JVM (проще)
  • загрузить 32-разрядную JVM и распаковать ее без установки,(не требует специального разрешения)

Вы можете обнаружить, что можете получить версию IntelliJ, которая поставляется с 32-разрядной JVM, или установить другую программу, которая устанавливает 32-разрядную JVM, и использоватьтолько JVM.

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