Does jvm load all the classes mentioned by the classpath?

后端 未结 5 891
北恋
北恋 2020-12-15 10:12

When we invoke java command with -cp command then we provide some directories and jar files. Does jvm load all the classes mentioned by the classpath Or it is just a super s

5条回答
  •  天命终不由人
    2020-12-15 10:37

    Loading of class occurs in order and looks in locations. -cp falls under third category as listed below .Mostly the application classes should be supplied through -cp or it will look for the enviroment variable CLASSPATH.

    The extension framework makes use of the class-loading delegation mechanism. When the runtime environment needs to load a new class for an application, it looks for the class in the following locations, in order:

    1)Bootstrap classes: the runtime classes in rt.jar, internationalization classes in i18n.jar, and others.

    2)Installed extensions: classes in JAR files in the lib/ext directory of the JRE, and in the system-wide, platform-specific extension directory (such as /usr/jdk/packages/lib/ext on the Solaris™ Operating System, but note that use of this directory applies only to Java™ 6 and later).

    3)The class path: classes, including classes in JAR files, on paths specified by the system property java.class.path. If a JAR file on the class path has a manifest with the Class-Path attribute, JAR files specified by the Class-Path attribute will be searched also. By default, the java.class.path property's value is ., the current directory. You can change the value by using the -classpath or -cp command-line options, or setting the CLASSPATH environment variable. The command-line options override the setting of the CLASSPATH environment variable.

    https://docs.oracle.com/javase/tutorial/ext/basics/load.html

提交回复
热议问题