我有一个基于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(我的申请没有)? 它背后的原因是什么?
答案 0 :(得分:1)
我不太了解Java,但是如果它在JAR(或任何类型的存档中),那么它必须在被加载之前被提取到真实文件中(因为OS不提供其他支持的方式)这样做。)