At our company we have a few applications running through java applets from various outside vendors. Our problem is this: app1 can only run on JRE 1.6.05 whereas app2 needs 1.6.16. Is there a way that we can specify which applet gets which JRE instead of picking just one JRE for all applets (and hence all users)? I don't believe that we should mandate one JRE for all users since any of these vendors because even if we find a solution, one of the vendors will release a new patch at some point that will restart this entire cycle again.
This sort of dependency incompatibility is one of the things that application virtualization is great for sorting out.
Using application virtualization you can package each difficult app along with it's particular version of the JVM into one virtual 'bubble' on the machine where it won't even see that there are other virtualized apps with their own versions of JVM installed in their own walled-off bubbles.
Application virtualization is provided by systems like Microsoft's App-V (formerly Softgrid), Symantec/Altiris's Software Virtualization Solution (SVS), Citrix XenApp or VMWare ThinApp.
Prior to 6u10, the PlugIn JVM ran inside the browser. You can only have one JVM instance per process, so applets using different versions wasn't about to fly. Since 6u10, applets are run in a different process. With multiple external processes, version selection for applets is possible. The information is somewhere on the Sun websites...