Building java programs