2012-04-26 1 views
4

Я загрузил последние комбайсы com4j, и я пытаюсь выполнить самые простые из их примеров.com4j на Windows 64 бит

Я нахожусь в Windows 7 64 бит и использую 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" рядом с банкой.

+0

И я бегу с Процессор Intel, смешно ли dll «amd64»? – Kong

+0

Нет, это не смешно. Это просто общий способ обращения к 64-разрядной архитектуре Intel использует (как и amd). – technomage

ответ

0

Сначала у меня был аналогичный результат. Я обнаружил, что com4j-amd64.dll, созданный com4j, пуст. Средство состоит в том, чтобы извлечь файл из файла jar comjj и поместить его в соответствующий каталог вручную. Com4j не будет автоматически создавать файл, поскольку он уже существует. Поэтому проверить, если файл пуст в качестве первого шага -Carl

2

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

  1. Скачать и использовать полную последнюю версию (находится здесь: https://github.com/kohsuke/com4j/downloads)
  2. Извлеките последнюю com4j-amd64.dll из самой последней версии
    • Скачать последняя версия (находится здесь: https://github.com/kohsuke/com4j/downloads).
    • Открывают com4j.jar с вашей любимой утилитой зип (читай 7zip)
    • Экстракт com4j.jar \ com4j \ com4j-x64.dll к директории вашего приложения
    • (необязательно) Зарегистрировать библиотеки DLL с помощью REGSVR32 <path to dll>\com4j-x64.dll
0

Если вы используете IDE, наведите JRE библиотеку (построить путь) к 32 разрядной JRE (бен папку) в другой вы можете также установить 32-разрядную версию JRE в 64-разрядных машинах и работать в этой среде