1. A method comprising: maintaining a data structure of a Java Class Path indicating file dependencies; receiving an indication of a change in the Java Class Path; determining a first set of elements of the Java Class Path that have been affected by the change; and recompiling the first set of elements and the elements determined from the data structure that have dependencies on the first set of elements.