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 回答