US 7,533,389 B2
Dynamic loading of remote classes
Jerome M. Verbeke, San Jose, Calif. (US); and Neelakanth M. Nadgir, Mountain View, Calif. (US)
Assigned to Sun Microsystems, Inc., Santa Clara, Calif. (US)
Filed on Jun. 20, 2003, as Appl. No. 10/600,906.
Prior Publication US 2004/0261069 A1, Dec. 23, 2004
Int. Cl. G06F 3/00 (2006.01); G06F 9/44 (2006.01); G06F 9/46 (2006.01); G06F 13/00 (2006.01)
U.S. Cl. 719—332  [719/331; 717/166; 717/167] 60 Claims
OG exemplary drawing
 
1. A system, comprising:
a processor; and
a memory comprising program instructions, wherein the program instructions are executable by the processor to implement:
a virtual machine;
a default class loader for the virtual machine, configured to:
load classes for code executable within the virtual machine on the system from one or more local locations indicated by a class path of the default class loader;
determine that a class needed to execute the code on the system is not stored in the one or more locations indicated by the class path; and
generate an indication that the class is not loaded;
a remote class loader mechanism configured to:
detect the indication that the class is not loaded;
obtain the class from a remote system via a network; and
store the class in a location indicated by the class path of the default class loader on the system;
wherein the remote class loader mechanism is not a subclass of the default class loader, and is configured to perform said detect, said obtain, and said store separate from and transparent to the default class loader, and wherein the default class loader is independent from the remote class loader mechanism;
wherein the default class loader is configured to load the class from the location indicated by the class path, and wherein the default class loader being configured to load the class from the location avoids class conflicts; and
wherein, to load the class from the location indicated by the class path, the default class loader is configured to:
locate the class stored in the location indicated by the class path; and
load the class from the location for access by the code.