Java lang unsatisfiedlinkerror amd 64 bit platform

java.lang.UnsatisfiedLinkError: C:\Program Files (x86)\IBM\Lotus\Notes\nlsxbe.dll: Не удается загрузить IA 32-bit.dll IA на 64-разрядную платформу AMD

Я пытаюсь подключить объекты Lotus Notes Domino (8.5.1) из веб-приложения java, которое использует eclipse (indigo, jdk1.7). это то, что я сделал: 1. добавьте notes.jar в Librairies of Java Build Path в eclipse, 2. добавьте переменную пути “C:\Program Files (x86)\IBM\Lotus\Notes” к пути переменной Envrionment моего локальный компьютер. то я создал эти простые java-коды в eclipse, как показано ниже:

Как отметил в комментариях @maksimov, 64-разрядная JVM не может загружать 32-разрядные DLL файлы Notes. Существует, правда, 64-разрядная версия DLL, но вам придется установить и настроить Lotus Domino Server (64-битная версия Windows) на вашем компьютере – и на любом компьютере (-ах), где будет работать веб-приложение. Вам нужно будет только запустить сервер Domino один раз на машину, чтобы полностью настроить его. Он не должен работать постоянно, чтобы ваш код мог получить доступ к DLL, но вам придется оставить его установленным. Тем не менее, вам нужно будет выяснить, с кем вы управляете своими отношениями с IBM и, возможно, с IBM, чтобы определить, есть ли какие-либо лицензии и финансовые последствия, прежде чем устанавливать код сервера Domino таким образом. (Еще одно замечание: чтобы 64-битный код сервера Domino Server был установлен на компьютере, и убедитесь, что эта конкретная версия nlsxbe.dll является той, которую загружает ваш код, вам будет лучше, если вы удалите и полностью очистите существующей 32-разрядной клиентской установки Notes Notes. И при очистке я избавился бы от файла lotus.ini и любых файлов notes.ini и записей реестра, связанных с Notes, которые могут быть оставлены после удаления.)

Читайте также:  Template html что это

Есть и другой вариант. Ваш код использует “локальную” версию Java API Notes в notes.jar. Существует также версия API CORBA/IIOP, которая не использует DLL Notes или Dominbo. На самом деле, он не требует какой-либо установки какого-либо кода Lotus, и он не имеет никаких последствий для лицензирования. Все, что вам нужно для этого, – это копия NCSO.jar, добавленная в ваш проект. Вам нужно знать, что возможности версии API NCSO.jar немного отличаются от локальной версии, код для настройки сеанса несколько отличается, аутентификация не зависит от файлов Notes ID и серверов Domino, которые к которому вы подключаетесь, должен выполняться задача IIOP, что по умолчанию не будет, поэтому вам, возможно, придется обсудить это с людьми, которые управляют этими серверами.

Примечание. Удалено обновление, предлагающее OpenNTF API в качестве альтернативы. Это было немного временное замешательство. Это не помогло.

Источник

Не удается загрузить 32-разрядную библиотеку IA на 64-разрядной платформе AMD.

Могу ли я решить эту проблему, перекомпилировав DLL для 64-битного? Как я могу это сделать? Есть ли другой способ обхода? SVMLight делает исходный код C доступным.

10 ответов

Да, вам придется перекомпилировать DLL для 64-битного. Единственный другой вариант — переключиться на 32-разрядную JVM или получить 32-разрядный процесс для загрузки DLL от вашего имени и как-то связаться с этим процессом.

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

@Rosarch: Да, 64-битная машина может запускать 32-битные исполняемые файлы. Это будет самый простой способ заставить работать 32-битную DLL.

У меня была такая же проблема с приложением Java, использующим dll tibco, первоначально предназначенную для запуска в Win XP. Чтобы заставить его работать в Windows 7, я применил приложение к 32-разрядной JRE. Ожидание, есть ли другое решение.

Привет, вы можете рассказать, как ваше приложение указывало на 32-битную JRE? Это то, что вы сделали в вашей IDE или программно?

Короткий ответ на первый вопрос: да.

Более длинный ответ: возможно; это зависит от того, ведет ли процесс сборки SVMLight себя в 64-битных окнах.

Заключительное примечание: этот вызов в System.loadLibrary глуп. Либо вызовите System.load с полным именем пути, либо пусть он будет искать java.library.path.

Свойства проекта → Выполнить → Параметры VM

-Djava.library.path="C:\opencv\build\java\x64" 

Если задано java.library.path, для работы необходимо иметь следующие строки.

Field fieldSysPath; fieldSysPath = ClassLoader.class.getDeclaredField( "sys_paths" ); fieldSysPath.setAccessible( true ); fieldSysPath.set( null, null ); 

Была ли такая же проблема в win64bit и JVM 64bit

Была решена путем загрузки dll в system32

Вот ответ для тех, кто компилируется из командной строки /Command Prompt. Это не требует изменения вашей переменной среды Path ; он просто позволяет использовать 32-разрядный JVM для программы с 32-разрядным DLL .

Для компиляции не имеет значения, какой из javac используется — 32-разрядный или 64-разрядный.

>javac MyProgramWith32BitNativeLib.java 

Для фактического выполнения программы важно указать путь к 32-разрядной версии java.exe

Я отправлю пример кода для Windows , так как это, похоже, ОС, используемая OP.

Скорее всего, код будет выглядеть примерно так:

>"C:\Program Files (x86)\Java\jre#.#.#_###\bin\java.exe" MyProgramWith32BitNativeLib 

Разница будет в числах после jre . Чтобы найти номера, которые вы должны использовать, введите:

>dir "C:\Program Files (x86)\Java\" 

На моей машине процесс выглядит следующим образом

C:\Users\me\MyProject>dir "C:\Program Files (x86)\Java" Volume in drive C is Windows Volume Serial Number is 0000-9999 Directory of C:\Program Files (x86)\Java 11/03/2016 09:07 PM . 11/03/2016 09:07 PM .. 11/03/2016 09:07 PM jre1.8.0_111 0 File(s) 0 bytes 3 Dir(s) 107,641,901,056 bytes free C:\Users\me\MyProject> 

Итак, я знаю, что мои номера 1.8.0_111 , а моя команда

C:\Users\me\MyProject>"C:\Program Files (x86)\Java\jre1.8.0_111\bin\java.exe" MyProgramWith32BitNativeLib 

Источник

Java.lang.UnsatisfiedLinkError: xxxx.dll: Can’t load IA 32-bit .dll on a AMD 64-bit platform

При работе с субд sybase iq необходима библиотека jconn4 и некая dbjdbc12.dll. Так вот почему-то оригинальный sybase клиент, написанный на java, без проблем использует эти библиотеки на моей ос, а вот мои попытки соединиться с iq с java тщетны потому что я получаю ошибку:

java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: C:\sybase\IQ-15_4\Bin32\dbjdbc12.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform

JNA java.lang.UnsatisfiedLinkError не Win32
Добрый вечер! Написал Java обертку (посредством JNA) dll фортран библиотеки. dll библиотеку.

Загрузка 32 bit DLL в 64 bit DLL
Доброго дня, в своем предыдущем посту я озадачивался вопросом о том, как можно прикрутить DLL.

Запуск Load.dll (бывшая Load.exe) в дереве проц-ов, Как запустить прогой на C# .dll-ку
Подскажите, как должен выглядеть код простейшей программы на C# (Loader.exe), которая бы загружала.

А по тексту ошибки (как в названии темы) пробовал гуглить? Очень много результатов. Вот цитата ответа с SO на подобную ошибку

Thanks to Archie, I found out that my system was still running the 64 bit Java, while I installed the 32 bit. Traces of Java 64 bit were still present on my system, so I removed all traces of Java, then installed the latest Java JDK 7 on my system. Copy, pasted C:\Program Files (x86)\Java to C:\Program Files\Java, then changed the PATH and CLASSPATH to C:\Program Files\Java. java -version in cmd worked after this and the project in Netbeans 7.4 with JMF.jar runs and captures my webcam.

Источник

[Solved] Exception java.lang.UnsatisfiedLinkError: Can’t load library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so

Exception java.lang.UnsatisfiedLinkError: Can

Hello Guys, How are you all? Hope You all Are Fine. Today I am Just trying to run allure open But I am facing the following error. Exception in thread “main” java.lang.UnsatisfiedLinkError: Can’t load library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so in Java. So Here I am Explain to you all the possible solutions here.

Without wasting your time, Let’s start This Article to Solve This Error.

How Exception in thread “main” java.lang.UnsatisfiedLinkError: Can’t load library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so Error Occurs ?

I am just trying to run allure open But I am facing the following error.

Starting web server. 2021-08-23 18:05:04.16:INFO::main: Logging initialized @349ms to org.eclipse.jetty.util.log.StdErrLog Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2630)

How To Solve Exception in thread “main” java.lang.UnsatisfiedLinkError: Can’t load library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so Error?

How To Solve Exception in thread “main” java.lang.UnsatisfiedLinkError: Can’t load library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so Error?

To Solve Exception in thread “main” java.lang.UnsatisfiedLinkError: Can’t load library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so Error If you are using ubuntu then run this code sudo apt install openjdk-11-jdk If you are Windows users then just you have to manually install OpenJDK 11

Exception java.lang.UnsatisfiedLinkError: Can’t load library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so

To Solve Exception in thread “main” java.lang.UnsatisfiedLinkError: Can’t load library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so Error If you are using ubuntu then run this code sudo apt install openjdk-11-jdk If you are Windows users then just you have to manually install OpenJDK 11

Solution 1: Just install openjdk-11-jdk

If you are using ubuntu then run this code

sudo apt install openjdk-11-jdk

If you are Windows users then just you have to manually install OpenJDK 11

If you are facing Browse operation is not supported on your platform. You can use the link below to open the report manually. Error after installing OpenJDK then just follow this solution.

Run this to find out which ones, then install them.

$ ldd /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so

Summery

It’s all About this issue. Hope all solution helped you a lot. Comment below Your thoughts and your queries. Also, Comment below which solution worked for you?

Источник

Оцените статью