Umljava is a project mainly written in Java, it's free.
A tool to generate UML diagrams from class files
A tool to create UML diagrams from class files