Shp2KML comes from a need to import ESRI Shapefiles into GoogleEarth (earth.google.com). Google Earth is free, but they charge a few bucks for this functionality, you can get it from here for free.
Shp2KML works well enough to get Points, Lines, or Polygons into Google Earth, but it's not been tested thoroughly, and there are certainly some bugs. Be patient, or offer to help!
Shp2KML uses the GeoTools Library (geotools.org) to allow access to the files, so I'd like to thank that crew for putting a fantastic set of Java GIS tools together.
I hacked together this project in about six hours. If you'd like me to do some work for you (GIS or coding), check out my personal site: www.andrewtheken.com (you can email me from there).
Shp2KML is a GPL'd project, I am open to licensing it for other uses if you contact me.
Shp2KML is not affiliated with ESRI, or Google.
Actually everything from here down is a bit of a lie right now. To use shp2kml, you need to check it out of CVS with Eclipse, and then you can run "net.sourceforge.shp2kml.mainRunner" as a Java Application from the workbench. I am hacking this so that it will be it's own app right now..
Shp2KML needs some coaxing to get it to work. When downloading, run the app from the commandline like so:
java -cp ./geotools -jar shp2kml.jar (for the GUI version)
java -cp ./geotools -jar shp2kml.jar name_of_shapefile.shp (for CLI version)
The current version of the tool doesn't give much feedback, but a .KML file will be created in the same location as the original shapefile when it's done.
In the GUI version, the "shapefiles only" filter seems to prevent selection of all files, including the .shp extension files (odd bug, working on it).
I've worked from the Shapefile specification from ESRI, if the geometry of a shapefile is non-standard in some way, I cannot gaurantee that the tool will respond appropriately. I can say that I have seen some multi-part geometries not work correctly. To resolve this, edit the feature, and "break apart" those geometries in whichever GIS you're using.
The feature attributes are not being included in the KML, I hope to fix this in the near future.
Really, this is a command line tool, with a VERY lightweight GUI, so I'll include the a picture of the GUI for you screenshot lovers:
You can get the very latest from the Sourceforge..
Have a nice day!