2011-08-08 121 views
0

我有一個基於SWT的小型java應用程序。在安裝swt-win32 - *。dll時,我的應用程序安裝在C:\ Program Files \ myapp \ win32中。爲什麼我的DLL最終在AppData Local Temp

當我看到我的進程資源管理器應用程序,我注意到,該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(我的應用程序沒有)? 背後的原因是什麼?

+1

這是應用程序用來繞過UAC的一種伎倆。 Chrome也使用它。他們可以靜靜地更新DLL。所以可以病毒。 –

回答

1

我不太瞭解Java,但是如果它在JAR(或任何類型的存檔)中,那麼必須在加載它之前將其解壓縮爲實際文件(因爲OS不提供其他支持方法來做到這一點)。

+0

你是對的,我錯了。該DLL確實在jar中,並從那裏提取。謝謝您的回答。我恥辱地刪除了我誤導性的評論;-)。 – bbuser

相關問題