Почему моя dll заканчивается в AppData \ Local \ Temp \ - PullRequest
0 голосов
/ 08 августа 2011

У меня есть небольшое Java-приложение на основе SWT. При установке swt-win32 - *. Dll устанавливается вместе с моим приложением в C: \ Program Files \ myapp \ win32.

Когда я посмотрел на свое приложение в Process Explorer, я заметил, что 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 (мое приложение нет)? В чем причина этого?

1 Ответ

1 голос
/ 08 августа 2011

Я не очень хорошо знаю Java, но если он находится внутри JAR (или любого другого архива, на самом деле), то он должен быть извлечен в реальный файл, прежде чем его можно будет загрузить (поскольку ОС не предоставляет другого поддерживаемого способасделать это).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...