为什么我的dll最终会出现在AppData \ Local \ Temp \

时间:2011-08-08 12:02:48

标签: windows dll appdata

我有一个基于SWT的小型java应用程序。在安装时,我的应用程序在C:\ Program Files \ myapp \ win32中安装了swt-win32 - * .dll。

当我在进程资源管理器中查看我的应用程序时,我注意到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

每当我从temp文件夹中删除它并重新启动我的应用程序时,dll就会再次复制到那里。我的应用程序依赖的其他dll不显示此行为。

谁复制了dll(我的申请没有)? 它背后的原因是什么?

1 个答案:

答案 0 :(得分:1)

我不太了解Java,但是如果它在JAR(或任何类型的存档中),那么它必须在被加载之前被提取到真实文件中(因为OS不提供其他支持的方式)这样做。)