У меня есть 64-битная система, и я хочу запустить Java-приложение, которому нужно загрузить 32-битный dll-файл.Я хочу загрузить библиотеку, используя System.load () .При использовании 64-битной Java-8-JRE возникает следующая ошибка:
java.lang.UnsatisfiedLinkError: C:\[...]\test.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform.
При запуске приложения на 32-битной Java-6-JRE появляется
java.lang.UnsatisfiedLinkError: C:\[...]\test.dll: Can't find dependent libraries
Я пытался использовать 64-битную версию Java.Поскольку dll - это 32-битная dll, я попытался запустить приложение на 64-битной версии.Но затем возникает другая ошибка.
Я также попытался использовать System.loadLibrary () .Но ошибки кажутся похожими.
Java-8-64-bit:
java.lang.UnsatisfiedLinkError: C:\Windows\System32\test.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
-> Из-за этой ошибки я могу быть уверен, что java может найти этот файл вgeneral.
Java-6-32-bit:
java.lang.UnsatisfiedLinkError: no test in java.library.path
-> Из-за ошибки, показанной перед тем, как файл должен быть там.
Мой кодприложение очень короткое:
Использование System.load () :
public static void main(String[] args) {
System.load("C:\\[...]\\test.dll");
}
Использование System.loadLibary() :
public static void main(String[] args) {
System.loadLibrary("test");
}
Файл имеет все необходимые разрешения.
Типичная ошибка, связанная с отсутствием файла в переменной PATH, может быть вызвана выполнением 64-bit-JVM файл может быть найден, но не может быть прочитан, потому что ему нужна 32-битная JVM.
У кого-нибудь есть идеи?Спасибо!