Tag: com4j

使用Com4j或Jacob将64位Java与32位COM dll连接

我有以下配置: 1)Windows 10 64位 2)只有32位版本且可通过COM获得的应用程序。 我使用tlbimb.jar访问32位应用程序的.dll文件以生成所需的接口,然后我成功了。 场景1:我尝试使用Java 8 32位安装来访问32位应用程序。 我可以成功地通过COM调用方法而没有任何问题。 场景2:我尝试使用Java 8 64位安装来访问32位应用程序。 我收到一条错误消息: Exception in thread “main” com4j.ExecutionException: com4j.ComException: 80040154 CoCreateInstance failed : Class not registered : .\com4j.cpp:153 我在Stackoverflow / Google上搜索了exceptin,我做了以下事情: 1)使用Sys64WOW / regsvr32.exe和System32 / regsvr32.exe注册应用程序的dll 2)使用Sys64WOW / regsvr32.exe和System32 / regsvr32.exe注册com4j dll(32位和64位) 3)复制Sys64WOW和System32文件夹中的dll。 我已完成上述所有操作,检查所有可能的组合。 使用64位Java的错误仍然存​​在。 我尝试过使用另一座桥(雅各布)。 在32位Java上它成功,在64位Java上它失败了。 我有一个问题可能有人知道:有没有办法连接一个应用程序,据我所知,只提供Win32 COM dll [1],使用任何可用的Java / COM桥和Java 64位 […]

Windows 64位上的com4j

我已经下载了最新的com4jjar子,我正试图通过他们最简单的例子。 我使用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.(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 […]