Вы можете использовать командный файл для очистки кеша и вызова этого командного файла в java.
вот команда для вызова пакетного файла в Java: more here
Runtime.getRuntime().exec("cmd /c start clearCache.bat");
этот пакетный файл очистить все java cache
в windows
. просто вызовите этот пакетный файл в код Java для выполнения
@Echo Off
echo =========================
echo Now clearing all users Java cache folder
set "docandset=%homedrive%\users"
>> c:\Delete.log echo/ "Java\Deployment\cache\6.0\"
for /f "delims=" %%a in ('dir "%docandset%" /ad /b') do (
for %%b in (
"%docandset%\%%a\AppData\LocalLow\Sun\Java\Deployment\cache\6.0"
) do (
echo %%b >> c:\Delete.log
cd /d %%b >> c:\Delete.log 2>&1
rd /s /q %%b >> c:\Delete.log 2>&1
del /f /s /q %%b >> c:\Delete.log 2>&1
)
)
echo =========================
echo COMPLETE!!!!
echo =========================
echo All users Java cache folder has been cleared.
PAUSE
нашел его здесь: http://community.spiceworks.com/scripts/show/1928-clear-all-users-java-cache
вы можете проверить это также, прозрачные окна временные файлы: Batch delete temporary Windows files (system, browsers, cache, etc) for all users
Вы можете использовать ЮНА, чтобы позвонить [ ' SetSystemFileCacheSize'] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa965240%28v=vs.85%29.aspx) '((SIZE_T) -1, (SIZE_T) -1, 0) ', который очищает кеш. Но я не думаю, что этого достаточно, потому что он просто переводит страницы из рабочего набора в резервный список, фактически не очищая их. – eryksun
RAMMap использует недокументированный системный вызов, чтобы очистить резервный список, который, как мне кажется, требует NT 6. Для получения дополнительной информации о объявлениях, требуемых в соответствии с требованиями, обратитесь к [этой странице] (http://processhacker.sourceforge.net/doc/ntexapi_8h_source.html). следующий фрагмент: 'SYSTEM_MEMORY_LIST_COMMAND command = MemoryPurgeStandbyList;' 'NtSetSystemInformation (SystemMemoryListInformation, & command, sizeof (команда));' Для этого требуется '' SeProfileSingleProcessPrivilege'', для которого повышенный процесс должен вызывать 'OpenProcessToken',' LookupPrivilegeValue 'и' AdjustTokenPrivileges'. – eryksun
Я забыл упомянуть, что вызов 'SetSystemFileCacheSize' для очистки кеша требует включения' 'SeIncreaseQuotaPrivilege''. – eryksun