4

最新のcom4jjarをダウンロードし、それらの最も単純な例を実行しようとしています。

私はWindows764ビットを使用しており、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

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をアプリケーションのベースディレクトリに抽出します
    • (オプション)を使用してdllを登録しますREGSVR32 <path to dll>\com4j-x64.dll
于 2012-07-10T17:48:57.693 に答える
2

最新バージョンがリリースされました:

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

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

これを使用すると、すべての問題が解決しました。

于 2012-06-08T20:43:52.950 に答える
0

私も最初は似たような結果でした。com4j によって生成された com4j-amd64.dll が空であることがわかりました。解決策は、com4j jar ファイルからファイルを抽出し、手動で関連するディレクトリに配置することです。ファイルが既に存在するため、Com4j はファイルを自動生成しません。そのため、最初のステップとしてファイルが空かどうかを確認してください -Carl

于 2012-05-08T08:58:35.707 に答える