Many software development platforms provide a large number of library components to make it easy to build high quality software. On the other hand, it became more and more difficult for developers to find useful components in each development context because the amount of components provided became too large today. This paper proposes a recommender system that provides useful Java components (library class files) to a developer based on collaborative filtering (CF). When a developer gives an unfinished Java program to the system, it investigates Java library class files used in the given program and finds Java programs that arc similar to the given program from a program repository. Then, the system recommends to the developer Java library class files that were used in the similar programs but were not used in the developer's program. An experimental evaluation showed that the recommendation accuracy of the proposed system was much higher than that of a naive (non-CF) method in all four evaluation criteria (recall, precision, F1 value, and half-life utility).