Searching for "Java GIS" will find many tools and sites that may be helpful for this.
http://www.openstreetmap.org/ may also be of interest.
As an aside, a ZIP code is not a point, it's an area (assuming that you mean US-American ZIP codes), so calculating a distance around that will be tricky, to say the least.