com4j在Windows 64位(com4j on Windows 64 bit)

2019-06-24 00:22发布

我已经下载了最新的com4j罐子,我试图通过一个最简单的例子自己运行。

我在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”旁边的罐子。

Answer 1:

最新版本刚刚发布:

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

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

使用此解决一个我的所有问题。



Answer 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


Answer 3:

起初我也有类似的结果。 我发现,是由com4j产生的com4j-amd64.dll是空的。 补救的方法是提取从com4j JAR文件的文件,并把它放在相关的目录中手动操作。 Com4j然后将因为它已经不存在自动生成的文件。 因此,检查文件是否为空,作为第一步-Carl



文章来源: com4j on Windows 64 bit