---- TO INSTALL If you just want to use it (not change it), put the fully qualified pathname of socketopener.jar in your CLASSPATH. If you want to change it, don't add the jar to your classpath and see "TO CHANGE" (below). ---- TO TEST You'll need to installJUnit (http://www.junit.org). Then run this command: java junit.textui.TestRunner com.yagni.socketopener.TestSocketOpener A failed test gives you a stack trace. A successful test looks like to this: .. Time: 0.057 OK (2 tests) ---- TO CHANGE You'll need JUnit (http://www.junit.org) and GNU make (http://www.gnu.org). Other makes may work. Don't add the jar to your CLASSPATH. Instead, extract the jar from a directory that's in your CLASSPATH. Check the makefile to make sure your favorite compiler is selected. Then make whatever changes you want, then run "make"; the makefile will build everything and run the unit test. If you want to suggest your changes for inclusion in the main branch, send them to the package maintainer mentioned at the top of the README. Send the changes any way you want. I suggest unified diffs, but any way you want to send them is great.