The JAR applet is loaded by the JVM. All applets are associated with an instance of URLClassloader (or a subclass of sun.applet.AppletClassLoader in the Sun JVM), which is responsible for loading all the classes and resources needed for the applet.
Apparently, most of the infrastructure required to load class files and resources is available in the Java runtime, and reusing this file will allow the Java plugin not to worry about accessing the browserβs internal functions.
I will reproduce the essential parts of the OpenJDK code base here, which performs this operation. You will find interesting things in the runLoader() sun.applet.AppletPanel :
private void runLoader() { if (status != APPLET_DISPOSE) { showAppletStatus("notdisposed"); return; } dispatchAppletEvent(APPLET_LOADING, null);
In addition, getting a browser to retrieve resources will complicate matters for the Java security model. This is partly due to the fact that applets use their own AccessControlContext , which was configured for them. This context has a default permission set that is added to it when initializing the applet; the kit includes SocketPermission for connecting to the server on which the code base is located, or FilePermission , which allows you to read access to the file system containing the code base. If the loading of resources should be performed by the browser, then depending on how the plugin is implemented, checks may simply not be performed, which will lead to a possible collapse of the security model.
You can confirm the JVM resource load behavior by looking at network traffic as indicated in another answer. I will send a screenshot from Fiddler as a confirmation. The process column indicates which OS process is responsible for sending the request (in this case, it is the java.exe Java application launch application). Apologies for the seemingly poor image quality - you will need to resize the image or open it in a new window.

source share