Does it has something to do with the great number of files about 900.0000?
Well, JkDefrag does not have a limit to the number of files, there are no fixed size arrays. It needs about 600 bytes of memory per item (files + folders), in your case that would be something like 540 megabytes. All memory allocation is done during analysis, not during defragging and optimizing. In your case the program crashes during optimization, so I doubt very much if it's a memory problem in JkDefrag.
Do you have Microsoft Visual Studio? If so then perhaps you can compile JkDefrag and run in the debugger, see the VisualC folder in the sources. Maybe that will catch the crash and tell us what is causing it.