0

小さな SWT ベースの Java アプリケーションがあります。インストール時に、swt-win32-*.dll が私のアプリケーションと共に C:\Program Files\myapp\win32 にインストールされます。

プロセス エクスプローラーで自分のアプリケーションを見ると、dll が次の場所から読み込まれていることに気付きました。

C:\Users\[Username]\AppData\Local\Temp\swtlib-32\swt-win32-*.dll 

Windows XP では、最終的に次のようになります。

C:\Documents and Settings\[Username]\Local Settings\Temp\swt-win32-*.dll

一時フォルダーから削除してアプリケーションを再起動すると、dll が再度そこにコピーされます。私のアプリケーションが依存している他のdllは、この動作を示しません。

誰が dll をコピーしますか (私のアプリケーションはコピーしません)? その背後にある理由は何ですか?

4

1 に答える 1

1

私はJavaをよく知りませんが、JAR(または実際にはあらゆる種類のアーカイブ)内にある場合は、ロードする前に実際のファイルに抽出する必要があります(OSがサポートされている他の方法を提供していないため) )。

于 2011-08-08T12:06:11.653 に答える