Comparison with Previous Releases
In Java 2, version 1.3, no class loader
can define a class that is in the java
package (i.e., whose class name begins with
java
). In 1.2 and earlier releases, that
restriction is not present (unless you code it into your own class
loader). That’s one reason why there is no class loader that
uses the checkPackageDefinition( )
method
(although that method was not used in 1.2 either).
In Java 1.1, class loading was significantly different. To begin, there are no code source or protection domain objects in 1.1, and classes do not carry associated permissions with them. Security in 1.1 is solely up to the security manager, and the class loader simply loads classes.
That means that the loadClass( )
method
in 1.1 is very different. In particular, there is only one
defineClass( )
method
that it can call (the one without a protection domain argument), and
it does not call the findClass( )
method. In
order to write a class loader in 1.1, you must override the
loadClass( )
method and perform all your work in
that method. We show an example of this in Appendix D.
The secure class loader and URL class loader were introduced in Java 2, version 1.2. In 1.1, the primordial class loader is used to load all classes on the classpath in addition to the classes in the core API.
Delegation was also introduced in Java 2, version 1.2. In 1.1, a custom class loader can make a special method call to load classes from the classpath, but there is no general hierarchy of ...
Get Java Security, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.