0

理想的には正常に動作するはずの既存のアプリケーションを実行しています。しかし、自分のマシンでコードを実行すると、次のコードで例外がスローされます

ComThread.InitMTA();

例外java.lang.NoClassDefFoundError: Could not initialize class com.jacob.com.ComThread

クラス パス (WEB-INF\lib) に jacob.jar があり、対応する dll を Windows System32 フォルダーに配置しました。助けてください。

また、私のウィンドウは64ビットですが、32ビットバージョンのJavaを実行しています(プロジェクトとEclipseの両方で)。

4

2 に答える 2

1

私も最近この問題に遭遇しました。これは、jacob dll が見つからない場合に表示される例外です。実際UnsatisfiedLinkErrorには静的イニシャライザでスローしていますが、静的イニシャライザが失敗したクラスをロードしようとするまで、影響はありません。必要な dll (32 ビットまたは 64 ビット) のバージョンは、JVM と一致する必要があります。いくつかのオプションがあります:

  1. Eclipse などを使用している場合は、クラスパスに dll を配置するか、DLL の場所を含む別のクラスパス エントリを Eclipse 実行構成に追加します。
  2. Webstart を使用している場合はnativelib、dll を含む jar のエントリを使用する必要があります。
  3. を使用して、dll の場所を jvm に追加します。java.library.path
  4. を使用してdllへのパスをハードコーディングできますjacob.dll.path
于 2016-08-14T01:47:04.540 に答える