4

我已经下载了最新的 com4j jar,我正在尝试运行他们最简单的示例。

我在 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代码提取jar旁边的“com4j-amd64.dll”。

4

3 回答 3

2

最新版本刚刚发布:

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

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

使用这个解决了我所有的问题。

于 2012-06-08T20:43:52.950 回答
2

你有两个选择:

  1. 下载并使用完整的最新版本(位于此处: https ://github.com/kohsuke/com4j/downloads )
  2. 从最新版本中提取最新的 com4j-amd64.dll
    • 下载最新版本(位于此处:https ://github.com/kohsuke/com4j/downloads )。
    • 使用您最喜欢的 zip 实用程序打开 com4j.jar(阅读 7zip)
    • 将 com4j.jar\com4j\com4j-x64.dll 解压到应用程序的基本目录
    • (可选)使用注册 dllREGSVR32 <path to dll>\com4j-x64.dll
于 2012-07-10T17:48:57.693 回答
0

我一开始也有类似的结果。我发现 com4j 生成的 com4j-amd64.dll 是空的。补救方法是从com4j jar文件中提取文件,并通过手动操作将其放在相关目录中。Com4j 将不会自动生成该文件,因为它已经存在。因此,第一步检查文件是否为空-Carl

于 2012-05-08T08:58:35.707 回答