com4j в Windows 64 бит

Я загрузил последние jar-файлы com4j и пытаюсь просмотреть самые простые из их примеров.

Я использую 64-разрядную версию Windows 7 и использую 64-разрядную JVM.

Когда я запускаю команду (из учебника com4j):

java -jar tlbimp.jar -o wsh -p test.wsh %WINDIR%\system32\wshom.ocx

Я получил:

Exception in thread "main" java.lang.UnsatisfiedLinkError: com4j-amd64.dll: %1 is 
not a valid Win32 application
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.load0(Unknown Source)
        at java.lang.System.load(Unknown Source)
        at com4j.COM4J.loadNativeLibrary(COM4J.java:569)
        at com4j.COM4J.<clinit>(COM4J.java:522)
        at com4j.tlbimp.driver.Lib.getLibid(Lib.java:90)
        at com4j.tlbimp.driver.Driver.addLib(Driver.java:38)
        at com4j.tlbimp.driver.Main.doMain(Main.java:123)
        at com4j.tlbimp.driver.Main.main(Main.java:56)
Exception in thread "Com4J shutdown hook" java.lang.NoClassDefFoundError: Could
not initialize class com4j.COM4J
        at com4j.COM4J$3.run(COM4J.java:476)

Код Java извлекает «com4j-amd64.dll» рядом с банкой.


person Kong    schedule 26.04.2012    source источник
comment
И я работаю с процессором Intel, смешно ли, что dll - это amd64?   -  person Kong    schedule 27.04.2012
comment
Нет, это не смешно. Это просто распространенный способ обозначения 64-битной архитектуры, которую использует Intel (как и amd).   -  person technomage    schedule 27.04.2012


Ответы (3)


Только что вышла последняя версия:

http://kohsuke.org/2012/04/27/com4j-updates/

https://github.com/kohsuke/com4j/downloads

Использование этого решило все мои проблемы.

person Kong    schedule 08.06.2012

У вас есть два варианта:

  1. Загрузите и используйте полную последнюю версию (находится здесь: https://github.com/kohsuke/com4j/downloads< /а>)
  2. Extract the latest com4j-amd64.dll from the most recent version
    • Download the latest version (located here: https://github.com/kohsuke/com4j/downloads).
    • Откройте com4j.jar с помощью вашей любимой утилиты zip (читай 7zip)
    • Извлеките com4j.jar\com4j\com4j-x64.dll в базовый каталог вашего приложения.
    • (необязательно) Зарегистрируйте dll, используя REGSVR32 <path to dll>\com4j-x64.dll
person Nick Rippe    schedule 10.07.2012

У меня был похожий результат поначалу. Я обнаружил, что com4j-amd64.dll, созданный com4j, пуст. Решение состоит в том, чтобы извлечь файл из jar-файла com4j и вручную поместить его в соответствующий каталог. Затем Com4j не будет автоматически создавать файл, поскольку он уже существует. Так что проверьте, пуст ли файл в качестве первого шага - Карл

person carl    schedule 08.05.2012