1) You are creating classes on-the-fly and loading them. 2) You want to ship encrypted class files, and only decrypt them at runtime. 3) You want to load class files out of the data segment of a *.EXE file. 4) ... And many more.
4) you want to load classes from a Database 5) you want to load classes from network (sockets) 6) you want to inspect bytecode before it is loaded 7) you want to ....
8) You have multiple applications running under one JVM (Servlet containers) and want to isolate each from the others. [ July 28, 2006: Message edited by: Ben Souther ]