![]() |
The Java Developers Almanac 1.4 |
|
e67. Determining from Where a Class Was Loaded // Get the location of this class
Class cls = this.getClass();
ProtectionDomain pDomain = cls.getProtectionDomain();
CodeSource cSource = pDomain.getCodeSource();
URL loc = cSource.getLocation(); // file:/c:/almanac14/examples/
It is not possible to determine the location of classes loaded by the
system class loader in the same way since the class' code source is
null. The only other method is to use the -verbose option on the
java command. This causes the Java virtual machine to print a message
every time a class is loaded.
> java -verbose MyAppHere's a sample of the output: [Opened c:\jdk1.4\jre\lib\rt.jar]
[Opened c:\jdk1.4\jre\lib\sunrsasign.jar]
[Opened c:\jdk1.4\jre\lib\jsse.jar]
[Opened c:\jdk1.4\jre\lib\jce.jar]
[Opened c:\jdk1.4\jre\lib\charsets.jar]
[Loaded java.lang.Object from c:\jdk1.4\jre\lib\rt.jar]
[Loaded java.io.Serializable from c:\jdk1.4\jre\lib\rt.jar]
[Loaded java.lang.Comparable from c:\jdk1.4\jre\lib\rt.jar]
[Loaded java.lang.CharSequence from c:\jdk1.4\jre\lib\rt.jar]
[Loaded java.lang.String from c:\jdk1.4\jre\lib\rt.jar]
[Loaded java.lang.Class from c:\jdk1.4\jre\lib\rt.jar]
[Loaded java.lang.Cloneable from c:\jdk1.4\jre\lib\rt.jar]
[Loaded java.lang.ClassLoader from c:\jdk1.4\jre\lib\rt.jar]
[Loaded java.lang.System from c:\jdk1.4\jre\lib\rt.jar]
[Loaded java.lang.Throwable from c:\jdk1.4\jre\lib\rt.jar]
e60. Getting the Name of a Class Object e61. Determining If a Class Object Represents a Class or Interface e62. Getting the Superclass of an Object e63. Getting the Superclass of a Class Object e64. Listing the Interfaces That a Class Implements e65. Listing the Interfaces That an Interface Extends e66. Getting the Package of a Class e68. Loading a Class That Is Not on the Classpath e69. Dynamically Reloading a Modified Class
© 2002 Addison-Wesley. |